varQ_=Object.defineProperty;varQg=e=>{if(typeofrequire!="undefined")returnrequire(e);thrownewError('Dynamic require of "'+e+'" is not supported')};var_3=(e,t)=>{for(varnint)Q_(e,n,{get:t[n],enumerable:!0})};varR3=(e,t,n)=>{if(!t.has(e))throwTypeError("Cannot "+n)};varFn=(e,t,n)=>(R3(e,t,"read from private field"),n?n.call(e):t.get(e)),Ir=(e,t,n)=>{if(t.has(e))throwTypeError("Cannot add the same private member more than once");tinstanceofWeakSet?t.add(e):t.set(e,n)},Qr=(e,t,n,r)=>(R3(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);function$t(e,t){letn=e.endsWith("/")?"":"/",s=t.startsWith(".")||t.startsWith("/")||t.startsWith("http:")||t.startsWith("https:")||t.startsWith("file:")?`${t}`:`${e}${n}${t}`;if(!s.toLocaleLowerCase().includes(".json"))thrownewError(`Human: ModelPath Error: ${s} Expecting JSON file`);returns}functionme(...e){lett=newDate,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)}varat=()=>typeofperformance!="undefined"?performance.now():parseInt((Number(process.hrtime.bigint())/1e3/1e3).toString());functionir(...e){lett=n=>n&&typeofn=="object";returne.reduce((n,r)=>(Object.keys(r||{}).forEach(s=>{leta=n[s],o=r[s];Array.isArray(a)&&Array.isArray(o)?n[s]=a.concat(...o):t(a)&&t(o)?n[s]=ir(a,o):n[s]=o}),n),{})}varD3={backend:"webgl",modelBasePath:"../models/",wasmPath:"../node_modules/@tensorflow/tfjs-backend-wasm/dist/",debug:!0,async:!0,warmup:"full",cacheSensitivity:.75,skipFrame:!1,filter:{enabled:!0,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:15,skipFrames:15,minConfidence:.2,iouThreshold:.1,return:!1},mesh:{enabled:!0,modelPath:"facemesh.json"},iris:{enabled:!0,modelPath:"iris.json"},description:{enabled:!0,modelPath:"faceres.json",skipFrames:11,minConfidence:.1},emotion:{enabled:!0,minConfidence:.1,skipFrames:17,modelPath:"emotion.json"}},body:{enabled:!0,modelPath:"movenet-lightning.json",maxDetected:1,minConfidence:.2,skipFrames:1},hand:{enabled:!0,rotation:!0,skipFrames:18,minConfidence:.1,iouThreshold:.1,maxDetected:2,landmarks:!0,detector:{modelPath:"handdetect.json"},skeleton:{modelPath:"handskeleton.json"}},object:{enabled:!1,modelPath:"mb3-centernet.json",minConfidence:.2,iouThreshold:.4,maxDetected:10,skipFrames:19},segmentation:{enabled:!1,modelPath:"selfie.json"}};functionF3(){lete,t;if(typeofnavigator!="undefined"){letn=navigator.userAgent.match(/\(([^()]+)\)/g);if(n&&n[0]){letr=n[0].match(/\(([^()]+)\)/g);e=r?r[0].replace(/\(|\)/g,""):"",t=navigator.userAgent.replace(n[0],""),e[1]&&(t=t.replace(n[1],"")),t=t.replace(/ /g," ")}}elsetypeofprocess!="undefined"&&(e=`${process.platform}${process.arch}`,t=`NodeJS ${process.version}`);return{platform:e,agent:t}}varbh={};_3(bh,{Abs:()=>Q3,Acos:()=>ev,Acosh:()=>tv,AdadeltaOptimizer:()=>Fp,AdagradOptimizer:()=>Mp,AdamOptimizer:()=>Op,AdamaxOptimizer:()=>Pp,Add:()=>i2,AddN:()=>nv,All:()=>rv,Any:()=>sv,ArgMax:()=>av,ArgMin:()=>ov,Asin:()=>iv,Asinh:()=>lv,Atan:()=>uv,Atan2:()=>dv,Atanh:()=>cv,AvgPool:()=>hv,AvgPool3D:()=>pv,AvgPool3DGrad:()=>sD,AvgPoolGrad:()=>rD,BackendWasm:()=>u$,BatchMatMul:()=>fv,BatchToSpaceND:()=>mv,Bincount:()=>gv,BroadcastTo:()=>aD,Callback:()=>z8,CallbackList:()=>TS,Cast:()=>l2,Ceil:()=>yv,ClipByValue:()=>Av,Complex:()=>xv,ComplexAbs:()=>bv,Concat:()=>vv,Conv2D:()=>wv,Conv2DBackpropFilter:()=>kv,Conv2DBackpropInput:()=>Iv,Conv3D:()=>Sv,Conv3DBackpropFilterV2:()=>oD,Conv3DBackpropInputV2:()=>Tv,Cos:()=>Nv,Cosh:()=>Cv,CropAndResize:()=>$v,Cumsum:()=>Ev,CustomCallback:()=>CS,DataStorage:()=>OR,DenseBincount:()=>_v,DepthToSpace:()=>Rv,DepthwiseConv2dNative:()=>Dv,DepthwiseConv2dNativeBackpropFilter:()=>Fv,DepthwiseConv2dNativeBackpropInput:()=>Mv,Diag:()=>Ov,Dilation2D:()=>Pv,Dil
`;return h[h.length-1]=" "+h[h.length-1]+"]"+(a?"":f),h}function nc(e){let t=[];for(let n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t}var up=class{constructor(e,t,n){if(this.dtype=t,this.shape=e.slice(),this.size=Jt(e),n!=null){let r=n.length;L(r===this.size,()=>`Lengthofvalues'${r}'doesnotmatchthesizeinferredbytheshape'${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||U3(t,this.size),this.strides=Oi(e)}set(e,...t){t.length===0&&(t=[0]),L(t.length===this.rank,()=>`Thenumberofprovidedcoordinates(${t.length})mustmatchtherank(${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let r of e){if(r<0||r>=this.shape[t]){let s=`Requestedoutofrangeelementat${e}.Buffershape=${this.shape}`;throw new Error(s)}t++}let n=e[e.length-1];for(let r=0;r<e.length-1;++r)n+=this.strides[r]*e[r];return this.values[n]}locToIndex(e){if(this.rank===0)return 0;if(this.rank===1)return e[0];let t=e[e.length-1];for(let n=0;n<e.length-1;++n)t+=this.strides[n]*e[n];return t}indexToLoc(e){if(this.rank===0)return[];if(this.rank===1)return[e];let t=new Array(this.shape.length);for(let n=0;n<t.length-1;++n)t[n]=Math.floor(e/this.strides[n]),e-=t[n]*this.strides[n];return t[t.length-1]=e,t}get rank(){return this.shape.length}toTensor(){return Is().makeTensor(this.values,this.shape,this.dtype)}},Is=null,Bi=null,PD=null;function zD(e){Is=e}function LD(e){Bi=e}function BD(e){PD=e}var Tt=class{constructor(e,t,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=Jt(e),this.strides=Oi(e),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}get rank(){return this.shape.length}async buffer(){let e=await this.data();return Bi.buffer(this.shape,this.dtype,e)}bufferSync(){return Bi.buffer(this.shape,this.dtype,this.dataSync())}async array(){let e=await this.data();return Pi(this.shape,e,this.dtype==="complex64")}arraySync(){return Pi(this.shape,this.dataSync(),this.dtype==="complex64")}async data(){this.throwIfDisposed();let e=Is().read(this.dataId);if(this.dtype==="string"){let t=await e;try{return t.map(n=>ip(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}dataSync(){this.throwIfDisposed();let e=Is().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>ip(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 Is().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Is().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Bi.print(this,e)}clone(){return this.throwIfDisposed(),Bi.clone(this)}toString(e=!1){let t=this.dataSync();return MD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Bi.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Is().makeVariable(this,e,t,n)}};Object.defineProperty(Tt,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function WD(){return o2("Tensor",()=>Tt)}WD();var rc=class extends Tt{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtypeofthenewvalue(${e.dtype})andpreviousvalue(${this.dtype})mustmatch`);if(!Xs(e.shape,this.shape))throw new Error(`shapeofthenewvalue(${e.shape})andpreviousvalue(${this.shape})mustmatch`);Is().disposeTensor(this),this.dataId=e.dataId,Is().incRef(this,null)}dispose(){Is().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(rc,Symbol.hasInstance,{value:e=>e instanceof Tt&&e.as
ManifestJSONhasweightswithnames:${i.join(", ")}.`)}let l=s.reduce((p,f,m)=>(f&&p.push(m),p),[]),u=[];l.forEach(p=>{t[p].paths.forEach(f=>{let m=n+(n.endsWith("/")?"":"/")+f;u.push(m)})});let c=await e(u),d={},h=0;return l.forEach(p=>{let f=t[p].paths.length,m=0;for(let b=0;b<f;b++)m+=c[h+b].byteLength;let g=new ArrayBuffer(m),y=new Uint8Array(g),A=0;for(let b=0;b<f;b++){let v=new Uint8Array(c[h+b]);y.set(v,A),A+=v.byteLength}a[p].forEach(b=>{let v=g.slice(b.groupOffset,b.groupOffset+b.sizeBytes),w=Y7(v,[b.manifestEntry]);for(let I in w)d[I]=w[I]}),h+=f}),d}}var zF="application/octet-stream",LF="application/json",O2=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?(L(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=ct().platform.fetch,L(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&L(e.length===2,()=>`URLpathsforhttpmusthavealengthof2,(actuallengthis${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}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(r)],{type:LF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:zF}),"model.weights.bin");let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:ac(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save()failedduetoHTTPresponsestatus${s.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Requestto${this.path}failedwithstatuscode${e.status}.PleaseverifythisURLpointstothemodelJSONofthemodeltoload.`);let t;try{t=await e.json()}catch(p){let f=`FailedtoparsemodelJSONofresponsefrom${this.path}.`;throw this.path.endsWith(".pb")?f+=" 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.":f+=" Please make sure the server is serving valid JSON for this request.",new Error(f)}let n=t.modelTopology,r=t.weightsManifest,s=t.generatedBy,a=t.convertedBy,o=t.format,i=t.signature,l=t.userDefinedMetadata;if(n==null&&r==null)throw new Error(`TheJSONfromHTTPpath${this.path}containsneithermodeltopologyormanifestforweights.`);let u,c;r!=null&&([u,c]=await this.loadWeights(r));let d={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:s,convertedBy:a,format:o};i!=null&&(d.signature=i),l!=null&&(d.userDefinedMetadata=l);let h=t.modelInitializer;return h&&(d.modelInitializer=h),d}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=BF(t),s=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(s+c+r);this.weightUrlConverter&&o.push(...await Promise.all(i));let l=await ck(o,{requestInit:thi
Actual:${s}.
Expected:${a}.`);for(let o=0;o<a.length;++o){let i=s[o],l=a[o];if(!n(i,l))throw new Error(`Arraysdiffer:actual[${o}]=${i},expected[${o}]=${l}.
Actual:${s}.
Expected:${a}.`)}}function cM(e,t){e().then(()=>t.fail(),()=>t())}function dM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Ia(e)||Ia(e[0])||Ia(t)||Ia(t[0])?G2(e,n,(r,s)=>r==s):G2(e,t,(r,s)=>j2(r,s,0))}function hM(e,t,n){if(n==null&&(n=H2()),!j2(e,t,n))throw new Error(`Numbersdiffer:actual===${e},expected===${t}`)}function j2(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function pM(e,t,n){for(let r=0;r<e.length;r++)if(e[r]<t||e[r]>n)throw new Error(`Valueoutofrange:${e[r]}low:${t},high:${n}`)}function fM(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function Dk(e){for(let t=0;t<e.length;t++){let n=e[t];Array.isArray(n)?Dk(n):e[t]=Qu(n)}return e}var mM="3.7.0";function gM(){ct().set("PROD",!0)}function yM(){ct().set("DEBUG",!0)}function AM(){ct().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Fk(e){ct().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}BD(Fk);function xM(){U.disposeVariables()}function bM(){return U}function vM(){return U.memory()}function wM(e){return U.profile(e)}function Ue(e,t){return U.tidy(e,t)}function Ve(e){I2(e).forEach(n=>n.dispose())}function Mk(e){return U.keep(e)}function kM(e){return U.time(e)}function IM(e){return U.setBackend(e)}function SM(){return U.ready()}function TM(){return U.backendName}function NM(e){U.removeBackend(e)}function q2(e){return U.findBackend(e)}function CM(e){return U.findBackendFactory(e)}function K2(e,t,n=1){return U.registerBackend(e,t,n)}function EM(){return U.backend}function $M(e,t){ct().setPlatform(e,t)}function _M(e,t){let n=P(e,"a","add"),r=P(t,"b","add");[n,r]=Vt(n,r);let s={a:n,b:r};return U.runKernel(i2,s)}var Me=H({add_:_M});function RM(e,t){let n=P(e,"a","floorDiv"),r=P(t,"b","floorDiv");[n,r]=Vt(n,r);let s={a:n,b:r};return U.runKernel(Zv,s)}var Ok=H({floorDiv_:RM});function DM(e,t){let n=P(e,"a","div"),r=P(t,"b","div");if([n,r]=Vt(n,r),n.dtype==="int32"&&r.dtype==="int32")return Ok(n,r);let s={a:n,b:r},a={};return U.runKernel(zv,s,a)}var Qe=H({div_:DM});function FM(e,t){let n=P(e,"a","mul"),r=P(t,"b","mul");[n,r]=Vt(n,r);let s={a:n,b:r};return U.runKernel(Cw,s)}var fe=H({mul_:FM});function MM(e){let t=P(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return U.runKernel(bv,n)}else{let n={x:t};return U.runKernel(Q3,n)}}var Nr=H({abs_:MM});function OM(e){let n={x:P(e,"x","acos")};return U.runKernel(ev,n)}var PM=H({acos_:OM});function zM(e){let n={x:P(e,"x","acosh")};return U.runKernel(tv,n)}var LM=H({acosh_:zM});function BM(e){L(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),L(e.length>=1,()=>`Mustpassatleastonetensortotf.addN(),butgot${e.length}`);let t=e.map((s,a)=>P(s,`tensors${a}`,"addN")),n=t[0];t.forEach(s=>{if(s.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(s=>{if(!Xs(s.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let r=t;return U.runKernel(nv,r)}var X2=H({addN_:BM});function WM(e,t=null,n=!1){let s={x:P(e,"x","all","bool")},a={axis:t,keepDims:n};return U.runKernel(rv,s,a)}var VM=H({all_:WM});function UM(e,t=null,n=!1){let s={x:P(e,"x","any","bool")},a={axis:t,keepDims:n};return U.runKernel(sv,s,a)}var HM=H({any_:UM});function GM(e,t=0){let r={x:P(e,"x","argMax")},s={axis:t};return U.runKernel(av,r,s)}var Z2=H({argMax_:GM});function jM(e,t=0){let r={x:P(e,"x","argMin")},s={axis:t};return U.runKernel(ov,r,s)}var qM=H({argMin_:jM});function KM(e){let n={x:P(e,"x","asin")};return U.runKernel(iv,n)}var XM=H({asin_:KM});function ZM(e){let n={x:P(e,"x","asinh")};return U.runKernel(lv,n)}var YM=H({asinh_:ZM});function JM(e){let n={x:P(e,"x","atan")};return U.runKernel(uv,n)}var QM=H({atan_:JM});function eO(e,t){let n=P(e,"a","atan2"),r=P(t,"b","atan2");[n,r]=Vt(n,r);let s={a:n,b:r};return U.runKernel(dv,s)}var tO=H({atan2_:eO});function nO(e){let
withdtype${a.dtype}.`)}),n.length===1)return Js(n[0]);let r=n,s={axis:t};return U.runKernel(vv,r,s)}var an=H({concat_:fO});function mO(e){let n={x:P(e,"x","sigmoid")};return U.runKernel(a7,n)}var Ts=H({sigmoid_:mO});function gO(e,t,n){let r=P(e,"x","slice","string_or_numeric");if(r.rank===0)throw new Error("Slicing scalar is not possible");let s={x:r},a={begin:t,size:n};return U.runKernel(t7,s,a)}var Ze=H({slice_:gO});function yO(e){let n={x:P(e,"x","tanh")};return U.runKernel(I7,n)}var Q2=H({tanh_:yO});function AO(e,t,n,r,s,a){let o=P(e,"forgetBias","basicLSTMCell"),i=P(t,"lstmKernel","basicLSTMCell"),l=P(n,"lstmBias","basicLSTMCell"),u=P(r,"data","basicLSTMCell"),c=P(s,"c","basicLSTMCell"),d=P(a,"h","basicLSTMCell"),h=an([u,d],1),p=yt(h,i),f=Me(p,l),m=f.shape[0],g=f.shape[1]/4,y=[m,g],A=Ze(f,[0,0],y),x=Ze(f,[0,g],y),b=Ze(f,[0,g*2],y),v=Ze(f,[0,g*3],y),w=Me(fe(Ts(A),Q2(x)),fe(c,Ts(Me(o,b)))),I=fe(Q2(w),Ts(v));return[w,I]}var xO=H({basicLSTMCell_:AO});function bO(e,t,n){let r=P(e,"x","batchToSpaceND"),s=t.reduce((i,l)=>i*l);L(r.rank>=1+t.length,()=>`inputrankis${r.rank}butshouldbe>thanblockShape.length${t.length}`),L(n.length===t.length,()=>`crops.lengthis${n.length}butshouldbeequaltoblockShape.length${t.length}`),L(r.shape[0]%s==0,()=>`inputtensorbatchis${r.shape[0]}butisnotdivisiblebytheproductoftheelementsofblockShape${t.join(" * ")}===${s}`);let a={x:r},o={blockShape:t,crops:n};return U.runKernel(mv,a,o)}var Wk=H({batchToSpaceND_:bO});function vO(e){let t;return e.rank===0||e.rank===1?t=ue(e,[1,1,1,e.size]):e.rank===2?t=ue(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=ue(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function wO(e,t,n,r,s,a){a==null&&(a=.001);let o=P(e,"x","batchNorm"),i=P(t,"mean","batchNorm"),l=P(n,"variance","batchNorm"),u;s!=null&&(u=P(s,"scale","batchNorm"));let c;r!=null&&(c=P(r,"offset","batchNorm")),L(i.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),L(c==null||i.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),L(u==null||i.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let h={x:vO(o),scale:u,offset:c,mean:i,variance:l},p={varianceEpsilon:a},f=U.runKernel(Yv,h,p);return ue(f,o.shape)}var Ap=H({batchNorm_:wO});function kO(e,t,n,r,s,a){let o=P(e,"x","batchNorm"),i=P(t,"mean","batchNorm"),l=P(n,"variance","batchNorm"),u;s!=null&&(u=P(s,"scale","batchNorm"));let c;return r!=null&&(c=P(r,"offset","batchNorm")),L(o.rank===2,()=>`ErrorinbatchNorm2D:xmustberank2butgotrank${o.rank}.`),L(i.rank===2||i.rank===1,()=>`ErrorinbatchNorm2D:meanmustberank2orrank1butgotrank${i.rank}.`),L(l.rank===2||l.rank===1,()=>`ErrorinbatchNorm2D:variancemustberank2orrank1butgotrank${l.rank}.`),u!=null&&L(u.rank===2||u.rank===1,()=>`ErrorinbatchNorm2D:scalemustberank2orrank1butgotrank${u.rank}.`),c!=null&&L(c.rank===2||c.rank===1,()=>`ErrorinbatchNorm2D:offsetmustberank2orrank1butgotrank${c.rank}.`),Ap(o,i,l,c,u,a)}var IO=H({batchNorm2d_:kO});function SO(e,t,n,r,s,a){let o=P(e,"x","batchNorm"),i=P(t,"mean","batchNorm"),l=P(n,"variance","batchNorm"),u;s!=null&&(u=P(s,"scale","batchNorm"));let c;return r!=null&&(c=P(r,"offset","batchNorm")),L(o.rank===3,()=>`ErrorinbatchNorm3D:xmustberank3butgotrank${o.rank}.`),L(i.rank===3||i.rank===1,()=>`ErrorinbatchNorm3D:meanmustberank3orrank1butgotrank${i.rank}.`),L(l.rank===3||l.rank===1,()=>`ErrorinbatchNorm3D:variancemustberank3orrank1butgotrank${l.rank}.`),u!=null&&L(u.rank===3||u.rank===1,()=>`ErrorinbatchNorm3D:scalemustberank3orrank1butgotrank${u.rank}.`),c!=null&&L(c.rank===3||c.rank===1,()=>`ErrorinbatchNorm3D:offsetmustberank3orrank1butgotrank${c.rank}.`),Ap(o,i,l,c,u,a)}var TO=H({batchNorm3d_:SO});function NO(e,t,n,r,s,a){let o=P(e,"x","batchNorm"),i=P(t,"mean","batchNorm"),l=P(n,"variance","batchNorm"),u;s!=null&&(u=P(s,"scale","batchNorm"));let c;ret
rank${a.rank}.`),L(Xn(t),()=>`ErrorinlocalResponseNormalization:depthRadiusmustbeanintegerbutgotdepthRadius${t}.`);let o=a,i=!1;a.rank===3&&(i=!0,o=ue(a,[1,a.shape[0],a.shape[1],a.shape[2]]));let l={x:o},u={depthRadius:t,bias:n,alpha:r,beta:s},c=U.runKernel(gw,l,u);return i?ue(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var YP=H({localResponseNormalization_:ZP});function JP(e){let n={x:P(e,"x","log")};return U.runKernel(dw,n)}var uc=H({log_:JP});function QP(e){let n={x:P(e,"x","log1p")};return U.runKernel(hw,n)}var Jk=H({log1p_:QP});function ez(e){return L(Sa(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let r=P(t,"x","tf.grad","string_or_numeric"),s=n!=null?P(n,"dy","tf.grad"):null;return U.tidy(()=>{let{value:a,grads:o}=U.gradients(()=>e(r),[r],s);return s!=null&&Mn(a.shape,s.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Ip(o),o[0]})}}function tz(e){return L(Sa(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{L(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let r=sc(t,"args","tf.grads","string_or_numeric"),s=n!=null?P(n,"dy","tf.grads"):null;return U.tidy(()=>{let{value:a,grads:o}=U.gradients(()=>e(...r),r,s);return s!=null&&Mn(a.shape,s.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ip(o),o})}}function nz(e){return L(Sa(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{L(t instanceof Tt,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),L(n==null||n instanceof Tt,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:r,value:s}=U.gradients(()=>e(t),[t],n);return Ip(r),{grad:r[0],value:s}}}function rz(e){return L(Sa(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{L(Array.isArray(t)&&t.every(s=>s instanceof Tt),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),L(n==null||n instanceof Tt,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let r=U.gradients(()=>e(...t),t,n);return n!=null&&Mn(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ip(r.grads),r}}function Qk(e,t){L(Sa(e),()=>"The f passed in variableGrads(f) must be a function"),L(t==null||Array.isArray(t)&&t.every(u=>u instanceof rc),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in U.registeredVariables)t.push(U.registeredVariables[u])}let r=n?t.filter(u=>!u.trainable):null,s=t.length;t=t.filter(u=>u.trainable),L(t.length>0,()=>`variableGrads()expectsatleastoneoftheinputvariablestobetrainable,butnoneofthe${s}variablesistrainable.`);let a=!0,{value:o,grads:i}=U.gradients(e,t,null,a);L(i.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),L(o.rank===0,()=>`ThefpassedinvariableGrads(f)mustreturnascalar,butitreturnedarank-${o.rank}tensor`);let l={};return t.forEach((u,c)=>{i[c]!=null&&(l[u.name]=i[c])}),r!=null&&r.forEach(u=>l[u.name]=null),{value:o,grads:l}}function Ns(e){return U.customGrad(e)}function Ip(e){if(e.filter(n=>n==null).length>0)throw new Error(`Cannotcomputegradientofy=f(x)withrespecttox.Makesurethat
${s.shape}`);if(a.rank!==1)throw new Error(`ValuesshouldbeTensor1Dbutreceivedshape${a.shape}`);if(o.rank!==1)throw new Error(`DenseshapeshouldbeTensor1Dbutreceivedshape${o.shape}`);if(i.rank!==0)throw new Error(`Defaultvalueshouldbeascalarbutreceivedshape${i.shape}`);let l={indices:s,values:a,denseShape:o,defaultValue:i},u=U.runKernel(h7,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var wV=H({sparseFillEmptyRows_:vV});function kV(e,t,n){let r=P(e,"inputIndices","sparseReshape"),s=P(t,"inputShape","sparseReshape"),a=P(n,"newShape","sparseReshape");if(r.rank!==2)throw new Error(`InputindicesshouldbeTensor2Dbutreceivedshape
${r.shape}`);if(s.rank!==1)throw new Error(`InputshapeshouldbeTensor1Dbutreceivedshape${s.shape}`);if(a.rank!==1)throw new Error(`NewshapeshouldbeTensor1Dbutreceivedshape${a.shape}`);let o={inputIndices:r,inputShape:s,newShape:a},i=U.runKernel(p7,o);return{outputIndices:i[0],outputShape:i[1]}}var IV=H({sparseReshape_:kV});function SV(e,t,n){let r=P(e,"data","sparseSegmentMean"),s=P(t,"indices","sparseSegmentMean"),a=P(n,"segmentIds","sparseSegmentMean");if(r.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.rank!==1)throw new Error(`IndicesshouldbeTensor1Dbutreceivedshape
${s.shape}`);if(a.rank!==1)throw new Error(`SegmentidsshouldbeTensor1Dbutreceivedshape
${a.shape}`);let o={data:r,indices:s,segmentIds:a};return U.runKernel(f7,o)}var TV=H({sparseSegmentMean_:SV});function NV(e,t,n){let r=P(e,"data","sparseSegmentSum"),s=P(t,"indices","sparseSegmentSum"),a=P(n,"segmentIds","sparseSegmentSum");if(r.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.rank!==1)throw new Error(`IndicesshouldbeTensor1Dbutreceivedshape
${s.shape}`);if(a.rank!==1)throw new Error(`SegmentidsshouldbeTensor1Dbutreceivedshape
${a.shape}`);let o={data:r,indices:s,segmentIds:a};return U.runKernel(m7,o)}var CV=H({sparseSegmentSum_:NV});function EV(e,t,n,r,s,a,o,i){let l=P(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Datamustbeavector,saw:${l.shape}`);let u=P(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:n,nGramWidths:r,leftPad:s,rightPad:a,padWidth:o,preserveShortSequences:i},d={data:l,dataSplits:u},h=U.runKernel(x7,d,c);return{nGrams:h[0],nGramsSplits:h[1]}}var $V=H({stringNGrams_:EV});function _V(e,t,n=!0){let r=P(e,"input","stringSplit","string"),s=P(t,"delimiter","stringSplit","string");if(r.rank!==1)throw new Error(`InputshouldbeTensor1Dbutreceivedshape${r.shape}`);if(s.rank!==0)throw new Error(`Delimitershouldbeascalarbutreceivedshape${s.shape}`);let a={skipEmpty:n},o={input:r,delimiter:s},i=U.runKernel(b7,o,a);return{indices:i[0],values:i[1],shape:i[2]}}var RV=H({stringSplit_:_V});function DV(e,t){let n=P(e,"input","stringToHashBucketFast","string"),r={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let s={input:n};return U.runKernel(v7,s,r)}var FV=H({stringToHashBucketFast_:DV}),MV={fft:iy,ifft:Ep,rfft:ly,irfft:f4},OV={hammingWindow:hW,hannWindow:w4,frame:k4,stft:gW},Ye={flipLeftRight:bW,resizeNearestNeighbor:HW,resizeBilinear:VW,rotateWithOffset:wW,cropAndResize:AW,nonMaxSuppression:IW,nonMaxSuppressionAsync:RW,nonMaxSuppressionWithScore:FW,nonMaxSuppressionWithScoreAsync:OW,nonMaxSuppressionPadded:zW,nonMaxSuppressionPaddedAsync:BW,threshold:qW,transform:XW},PV={bandPart:YW,gramSchmidt:QW,qr:tV},zV={absoluteDifference:sV,computeWeightedLoss:sa,cosineDistance:oV,hingeLoss:lV,huberLoss:cV,logLoss:hV,meanSquaredError:fV,sigmoidCrossEntropy:yV,softmaxCrossEntropy:bV},LV={sparseFillEmptyRows:wV,sparseReshape:IV,sparseSegmentMean:TV,sparseSegmentSum:CV},BV={stringNGrams:$V,stringSplit:RV,stringToHashBucketFast:FV},Ra=class extends $k{minimize(e,t=!1,n){let{value:r,grads:s}=this.computeGradients(e,n);if(n!=null){let a=n.map(o=>({name:o.name,tensor:s[o.name]}));this.applyGradients(a)}else this.applyGradients(s);return Ve(s),t?r:(r.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return Qk(e,t)}dispose(){this.iterations_!=null&&Ve(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ut(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights()isnotimplementedforthisoptimizerclass${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Ra,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Fp=class extends Ra{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=U.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(n=>n.name):Object.keys(e)).forEach((n,r)=>{let s=U.registeredVariables[n],a=!1;this.accumulatedGrads[r]==null&&(this.accumulatedGrads[r]={originalName:`${n}/accum_grad`,variable:Ue(()=>Cr(s).variable(a))}),this.accumulatedUpdates[r]==null&&(this.accumulatedUpdates[r]={originalName:`${n}/accum_var`,variable:Ue(()=>Cr(s).variable(a))});let o=Array.isArray(e)?e[r].tensor:e[n];if(o==null)return;let i=this.accumulatedGrads[r].variable,l=this.accumulatedUpdates[r].variable;Ue(()=>{let u=Me(fe(i,this.rho),fe(ns(o),1-this.rho)),c=fe(Qe(na(Me(l,this.epsilon)),na(Me(i,this.epsilon))),o),d=Me(fe(l,this.rho),fe(ns(c),1-this.rho));i.assign(u),l.assign(d);let h=Me(fe(c,-this.learningRate),s);s.assign(h)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!
${a}).`);if(n<r)throw new Error(`batchDims(${r})mustbelessthanorequaltoaxis(${n}).`);for(let d=0;d<r;++d)if(e.shape[d]!==t.shape[d])throw new Error(`x.shape[${d}]:${e.shape[d]}shouldbeequaltoindices.shape[${d}]:${t.shape[d]}.`);let o=e.shape[n],i=[],l=1,u=1,c=1;for(let d=0;d<r;++d)i.push(e.shape[d]),l*=e.shape[d];for(let d=r;d<n;d++)i.push(e.shape[d]),u*=e.shape[d];for(let d=r;d<s;d++)i.push(t.shape[d]);for(let d=n+1;d<a;d++)i.push(e.shape[d]),c*=e.shape[d];return{batchSize:l,sliceSize:c,outerSize:u,dimSize:o,outputShape:i}}function CU(e){try{return e.map(t=>ip(t))}catch(t){throw new Error(`Failedtodecodeencodedstringbytesintoutf-8,error:${t}`)}}function EU(e){return e.map(t=>Qu(t))}var D4={};De(D4,{nonMaxSuppressionV3Impl:()=>I4,nonMaxSuppressionV4Impl:()=>S4,nonMaxSuppressionV5Impl:()=>T4,whereImpl:()=>y4});var $U=1e-7,_U=1e-4,fy=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}},Bp=class{refCount(e){return Gr("refCount")}incRef(e){return Gr("incRef")}timerAvailable(){return!0}time(e){return Gr("time")}read(e){return Gr("read")}readSync(e){return Gr("readSync")}numDataIds(){return Gr("numDataIds")}disposeData(e,t){return Gr("disposeData")}write(e,t,n){return Gr("write")}move(e,t,n,r,s){return Gr("move")}memory(){return Gr("memory")}floatPrecision(){return Gr("floatPrecision")}epsilon(){return this.floatPrecision()===32?$U:_U}dispose(){return Gr("dispose")}};function Gr(e){throw new Error(`'${e}'notyetimplementedornotfoundintheregistry.Thiskernelmaynotbesupportedbythetfjsbackendyouhavechosen`)}function F4(e){let t=e.length,n=0,r=0;for(;t>0;)r=Math.random()*t|0,t--,n=e[t],e[t]=e[r],e[r]=n}function RU(e,t){if(e.length!==t.length)throw new Error(`ArraysizesmustmatchtobeshuffledtogetherFirstarraylengthwas${e.length}Secondarraylengthwas${t.length}`);let n=e.length,r,s,a=0;for(;n>0;)a=Math.random()*n|0,n--,r=e[n],s=t[n],e[n]=e[a],t[n]=t[a],e[a]=r,t[a]=s}function gc(e,t,n){return Math.max(e,Math.min(t,n))}function DU(e){return e%2==0?e:e+1}function FU(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t}function MU(e,t){let n=Math.random();return t*n+(1-n)*e}function OU(e,t){let n=0;for(let r=0;r<e.length;r++){let s=Number(e[r])-Number(t[r]);n+=s*s}return n}function z(e,t){if(!e)throw new Error(typeof t=="string"?t:t())}function rs(e,t,n=""){z(Da(e,t),()=>n+`Shapes${e}and${t}mustmatch`)}function Wp(e){z(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function yc(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||ss(e)&&!n)for(let r=0;r<e.length;++r)yc(e[r],t,n);else t.push(e);return t}function on(e){if(e.length===0)return 1;let t=e[0];for(let n=1;n<e.length;n++)t*=e[n];return t}function PU(e){return e.length===0}function Da(e,t){if(e===t)return!0;if(e==null||t==null||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function mn(e){return e%1==0}function zU(e){if(Math.tanh!=null)return Math.tanh(e);if(e===Infinity)return 1;if(e===-Infinity)return-1;{let t=Math.exp(2*e);return(t-1)/(t+1)}}function LU(e){let t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function BU(e){let t=new Uint32Array(e);for(let n=0;n<e;++n)t[n]=n;return F4(t),t}function Ac(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function WU(e,t=r=>0,n){return new Promise((r,s)=>{let a=0,o=()=>{if(e()){r();return}a++;let i=t(a);if(n!=null&&a>=n){s();return}setTimeout(o,i)};o()})}function VU(e,t){let n=1,r=-1;for(let a=0;a<e.length;++a)if(e[a]>=0)n*=e[a];else if(e[a]===-1){if(r!==-1)throw Error(`Shapescanonlyhave1implicitsize.Found-1atdim${r}anddim${a}`);r=a}else if(e[a]<0)throw Error(`Shapescannotbe<0.Found${e[a]}atdim${a}`);if(r===-1){if(t>0&&t!==n)throw Error(`Size(${t})mustmatchthep
`;return h[h.length-1]=" "+h[h.length-1]+"]"+(a?"":f),h}function Ad(e){let t=[];for(let n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t}var Qt=class{constructor(e,t,n){if(this.dtype=t,this.shape=e.slice(),this.size=on(e),n!=null){let r=n.length;z(r===this.size,()=>`Lengthofvalues'${r}'doesnotmatchthesizeinferredbytheshape'${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||O4(t,this.size),this.strides=Ki(e)}set(e,...t){t.length===0&&(t=[0]),z(t.length===this.rank,()=>`Thenumberofprovidedcoordinates(${t.length})mustmatchtherank(${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let r of e){if(r<0||r>=this.shape[t]){let s=`Requestedoutofrangeelementat${e}.Buffershape=${this.shape}`;throw new Error(s)}t++}let n=e[e.length-1];for(let r=0;r<e.length-1;++r)n+=this.strides[r]*e[r];return this.values[n]}locToIndex(e){if(this.rank===0)return 0;if(this.rank===1)return e[0];let t=e[e.length-1];for(let n=0;n<e.length-1;++n)t+=this.strides[n]*e[n];return t}indexToLoc(e){if(this.rank===0)return[];if(this.rank===1)return[e];let t=new Array(this.shape.length);for(let n=0;n<t.length-1;++n)t[n]=Math.floor(e/this.strides[n]),e-=t[n]*this.strides[n];return t[t.length-1]=e,t}get rank(){return this.shape.length}toTensor(){return Cs().makeTensor(this.values,this.shape,this.dtype)}},Cs=null,Vl=null,AH=null;function xH(e){Cs=e}function bH(e){Vl=e}function vH(e){AH=e}var Ct=class{constructor(e,t,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=on(e),this.strides=Ki(e),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}get rank(){return this.shape.length}async buffer(){let e=await this.data();return Vl.buffer(this.shape,this.dtype,e)}bufferSync(){return Vl.buffer(this.shape,this.dtype,this.dataSync())}async array(){let e=await this.data();return Xi(this.shape,e,this.dtype==="complex64")}arraySync(){return Xi(this.shape,this.dataSync(),this.dtype==="complex64")}async data(){this.throwIfDisposed();let e=Cs().read(this.dataId);if(this.dtype==="string"){let t=await e;try{return t.map(n=>ff(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}dataSync(){this.throwIfDisposed();let e=Cs().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>ff(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 Cs().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Cs().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Vl.print(this,e)}clone(){return this.throwIfDisposed(),Vl.clone(this)}toString(e=!1){let t=this.dataSync();return gH(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Vl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Cs().makeVariable(this,e,t,n)}};Object.defineProperty(Ct,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function re(){return by("Tensor",()=>Ct)}re();var gf=class extends Ct{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtypeofthenewvalue(${e.dtype})andpreviousvalue(${this.dtype})mustmatch`);if(!Da(e.shape,this.shape))throw new Error(`shapeofthenewvalue(${e.shape})andpreviousvalue(${this.shape})mustmatch`);Cs().disposeTensor(this),this.dataId=e.dataId,Cs().incRef(this,null)}dispose(){Cs().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(gf,Symbol.hasInstance,{value:e=>e instanceof Ct&&e.as
ManifestJSONhasweightswithnames:${i.join(", ")}.`)}let l=s.reduce((p,f,m)=>(f&&p.push(m),p),[]),u=[];l.forEach(p=>{t[p].paths.forEach(f=>{let m=n+(n.endsWith("/")?"":"/")+f;u.push(m)})});let c=await e(u),d={},h=0;return l.forEach(p=>{let f=t[p].paths.length,m=0;for(let b=0;b<f;b++)m+=c[h+b].byteLength;let g=new ArrayBuffer(m),y=new Uint8Array(g),A=0;for(let b=0;b<f;b++){let v=new Uint8Array(c[h+b]);y.set(v,A),A+=v.byteLength}a[p].forEach(b=>{let v=g.slice(b.groupOffset,b.groupOffset+b.sizeBytes),w=u6(v,[b.manifestEntry]);for(let I in w)d[I]=w[I]}),h+=f}),d}}var xG="application/octet-stream",bG="application/json",kA=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?(z(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=ae().platform.fetch,z(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&z(e.length===2,()=>`URLpathsforhttpmusthavealengthof2,(actuallengthis${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}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(r)],{type:bG}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:xG}),"model.weights.bin");let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:wd(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save()failedduetoHTTPresponsestatus${s.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Requestto${this.path}failedwithstatuscode${e.status}.PleaseverifythisURLpointstothemodelJSONofthemodeltoload.`);let t;try{t=await e.json()}catch(p){let f=`FailedtoparsemodelJSONofresponsefrom${this.path}.`;throw this.path.endsWith(".pb")?f+=" 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.":f+=" Please make sure the server is serving valid JSON for this request.",new Error(f)}let n=t.modelTopology,r=t.weightsManifest,s=t.generatedBy,a=t.convertedBy,o=t.format,i=t.signature,l=t.userDefinedMetadata;if(n==null&&r==null)throw new Error(`TheJSONfromHTTPpath${this.path}containsneithermodeltopologyormanifestforweights.`);let u,c;r!=null&&([u,c]=await this.loadWeights(r));let d={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:s,convertedBy:a,format:o};i!=null&&(d.signature=i),l!=null&&(d.userDefinedMetadata=l);let h=t.modelInitializer;return h&&(d.modelInitializer=h),d}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=vG(t),s=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(s+c+r);this.weightUrlConverter&&o.push(...await Promise.all(i));let l=await b6(o,{requestInit:thi
withdtype${a.dtype}.`)}),n.length===1)return qo(n[0]);let r=n,s={axis:t};return G.runKernel(Ec,r,s)}var en=V({concat_:gj});function yj(e){let n={x:O(e,"x","sigmoid")};return G.runKernel(Rl,n)}var Rs=V({sigmoid_:yj});function Aj(e,t,n){let r=O(e,"x","slice","string_or_numeric");if(r.rank===0)throw new Error("Slicing scalar is not possible");let s={x:r},a={begin:t,size:n};return G.runKernel(rd,s,a)}var nt=V({slice_:Aj});function xj(e){let n={x:O(e,"x","tanh")};return G.runKernel(Pl,n)}var Kl=V({tanh_:xj});function bj(e,t,n,r,s,a){let o=O(e,"forgetBias","basicLSTMCell"),i=O(t,"lstmKernel","basicLSTMCell"),l=O(n,"lstmBias","basicLSTMCell"),u=O(r,"data","basicLSTMCell"),c=O(s,"c","basicLSTMCell"),d=O(a,"h","basicLSTMCell"),h=en([u,d],1),p=ot(h,i),f=pe(p,l),m=f.shape[0],g=f.shape[1]/4,y=[m,g],A=nt(f,[0,0],y),x=nt(f,[0,g],y),b=nt(f,[0,g*2],y),v=nt(f,[0,g*3],y),w=pe(K(Rs(A),Kl(x)),K(c,Rs(pe(o,b)))),I=K(Kl(w),Rs(v));return[w,I]}var gwe=V({basicLSTMCell_:bj});function vj(e,t,n){let r=O(e,"x","batchToSpaceND"),s=t.reduce((i,l)=>i*l);z(r.rank>=1+t.length,()=>`inputrankis${r.rank}butshouldbe>thanblockShape.length${t.length}`),z(n.length===t.length,()=>`crops.lengthis${n.length}butshouldbeequaltoblockShape.length${t.length}`),z(r.shape[0]%s==0,()=>`inputtensorbatchis${r.shape[0]}butisnotdivisiblebytheproductoftheelementsofblockShape${t.join(" * ")}===${s}`);let a={x:r},o={blockShape:t,crops:n};return G.runKernel(Xp,a,o)}var Tf=V({batchToSpaceND_:vj});function wj(e){let t;return e.rank===0||e.rank===1?t=J(e,[1,1,1,e.size]):e.rank===2?t=J(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=J(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function kj(e,t,n,r,s,a){a==null&&(a=.001);let o=O(e,"x","batchNorm"),i=O(t,"mean","batchNorm"),l=O(n,"variance","batchNorm"),u;s!=null&&(u=O(s,"scale","batchNorm"));let c;r!=null&&(c=O(r,"offset","batchNorm")),z(i.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),z(c==null||i.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),z(u==null||i.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let h={x:wj(o),scale:u,offset:c,mean:i,variance:l},p={varianceEpsilon:a},f=G.runKernel(cl,h,p);return J(f,o.shape)}var Xl=V({batchNorm_:kj});function Ij(e,t,n,r,s,a){let o=O(e,"x","batchNorm"),i=O(t,"mean","batchNorm"),l=O(n,"variance","batchNorm"),u;s!=null&&(u=O(s,"scale","batchNorm"));let c;return r!=null&&(c=O(r,"offset","batchNorm")),z(o.rank===2,()=>`ErrorinbatchNorm2D:xmustberank2butgotrank${o.rank}.`),z(i.rank===2||i.rank===1,()=>`ErrorinbatchNorm2D:meanmustberank2orrank1butgotrank${i.rank}.`),z(l.rank===2||l.rank===1,()=>`ErrorinbatchNorm2D:variancemustberank2orrank1butgotrank${l.rank}.`),u!=null&&z(u.rank===2||u.rank===1,()=>`ErrorinbatchNorm2D:scalemustberank2orrank1butgotrank${u.rank}.`),c!=null&&z(c.rank===2||c.rank===1,()=>`ErrorinbatchNorm2D:offsetmustberank2orrank1butgotrank${c.rank}.`),Xl(o,i,l,c,u,a)}var Sj=V({batchNorm2d_:Ij});function Tj(e,t,n,r,s,a){let o=O(e,"x","batchNorm"),i=O(t,"mean","batchNorm"),l=O(n,"variance","batchNorm"),u;s!=null&&(u=O(s,"scale","batchNorm"));let c;return r!=null&&(c=O(r,"offset","batchNorm")),z(o.rank===3,()=>`ErrorinbatchNorm3D:xmustberank3butgotrank${o.rank}.`),z(i.rank===3||i.rank===1,()=>`ErrorinbatchNorm3D:meanmustberank3orrank1butgotrank${i.rank}.`),z(l.rank===3||l.rank===1,()=>`ErrorinbatchNorm3D:variancemustberank3orrank1butgotrank${l.rank}.`),u!=null&&z(u.rank===3||u.rank===1,()=>`ErrorinbatchNorm3D:scalemustberank3orrank1butgotrank${u.rank}.`),c!=null&&z(c.rank===3||c.rank===1,()=>`ErrorinbatchNorm3D:offsetmustberank3orrank1butgotrank${c.rank}.`),Xl(o,i,l,c,u,a)}var Nj=V({batchNorm3d_:Tj});function Cj(e,t,n,r,s,a){let o=O(e,"x","batchNorm"),i=O(t,"mean","batchNorm"),l=O(n,"variance","batchNorm"),u;s!=null&&(u=O(s,"scale","batchNorm"));let c;return r!
rank${a.rank}.`),z(mn(t),()=>`ErrorinlocalResponseNormalization:depthRadiusmustbeanintegerbutgotdepthRadius${t}.`);let o=a,i=!1;a.rank===3&&(i=!0,o=J(a,[1,a.shape[0],a.shape[1],a.shape[2]]));let l={x:o},u={depthRadius:t,bias:n,alpha:r,beta:s},c=G.runKernel(nf,l,u);return i?J(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var dI=V({localResponseNormalization_:Mq});function Oq(e){let n={x:O(e,"x","log")};return G.runKernel(Ro,n)}var Rr=V({log_:Oq});function Pq(e){let n={x:O(e,"x","log1p")};return G.runKernel(Vc,n)}var VA=V({log1p_:Pq});function zq(e,t){z(Hp(e),()=>"The f passed in variableGrads(f) must be a function"),z(t==null||Array.isArray(t)&&t.every(u=>u instanceof gf),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in G.registeredVariables)t.push(G.registeredVariables[u])}let r=n?t.filter(u=>!u.trainable):null,s=t.length;t=t.filter(u=>u.trainable),z(t.length>0,()=>`variableGrads()expectsatleastoneoftheinputvariablestobetrainable,butnoneofthe${s}variablesistrainable.`);let a=!0,{value:o,grads:i}=G.gradients(e,t,null,a);z(i.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),z(o.rank===0,()=>`ThefpassedinvariableGrads(f)mustreturnascalar,butitreturnedarank-${o.rank}tensor`);let l={};return t.forEach((u,c)=>{i[c]!=null&&(l[u.name]=i[c])}),r!=null&&r.forEach(u=>l[u.name]=null),{value:o,grads:l}}function oa(e){return G.customGrad(e)}function Lq(e){let n={x:O(e,"x","neg")};return G.runKernel(Gc,n)}var Kt=V({neg_:Lq});function Bq(e){let n={x:O(e,"x","softplus")};return G.runKernel(od,n)}var Zl=V({softplus_:Bq});function Wq(e){let t=O(e,"x","logSigmoid");return oa(r=>({value:Kt(Zl(Kt(r))),gradFunc:o=>K(o,Rs(Kt(r)))}))(t)}var Vq=V({logSigmoid_:Wq});function Uq(e,t=null,n=!1){let s={x:O(e,"x","max")},a={reductionIndices:t,keepDims:n};return G.runKernel(gl,s,a)}var os=V({max_:Uq});function Hq(e,t){let n=O(e,"a","sub"),r=O(t,"b","sub");[n,r]=Ut(n,r);let s={a:n,b:r};return G.runKernel(zo,s)}var Ne=V({sub_:Hq});function Gq(e,t=null,n=!1){let r=O(e,"x","sum");r.dtype==="bool"&&(r=ke(r,"int32"));let s={x:r},a={axis:t,keepDims:n};return G.runKernel(Fl,s,a)}var _e=V({sum_:Gq});function jq(e,t=-1){let n=O(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`LogSoftmaxalonganon-lastdimensionisnotyetsupported.Logitswasrank${n.rank}andaxiswas${t}`);return oa((s,a)=>{let o=!0,i=os(s,t,!0),l=Ne(s,i),u=Ne(ke(l,"float32"),Rr(_e(Kr(l),t,o)));return a([u]),{value:u,gradFunc:(d,h)=>{let[p]=h,f=!0,m=Kr(p);return Ne(d,K(_e(d,t,f),m))}}})(n)}var UA=V({logSoftmax_:jq});function HA(e,t){for(let n=0;n<e.length;++n)if(e[e.length-n-1]!==t-1-n)return!1;return!0}function hI(e,t,n){let r=e.length+t.length,s=[],a=0,o=0;for(let i=0;i<r;i++)n.indexOf(i)===-1?s.push(e[a++]):s.push(t[o++]);return s}function pI(e,t){let n=[],r=e.length;for(let a=0;a<r;a++)t.indexOf(a)===-1&&n.push(e[a]);let s=t.map(a=>e[a]);return[n,s]}function ei(e,t){let n=t.map(r=>1);return hI(e,n,t)}function qq(e,t,n){z(HA(t,n),()=>`${e}supportsonlyinner-mostaxesfornow.Gotaxes${t}andrank-${n}input.`)}function fI(e,t){if(HA(e,t))return null;let n=[];for(let r=0;r<t;++r)e.indexOf(r)===-1&&n.push(r);return e.forEach(r=>n.push(r)),n}function GA(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function Kq(e,t){let n=[];for(let r=t-e;r<t;++r)n.push(r);return n}function Xq(e,t=null,n=!1){let r=O(e,"x","logSumExp"),s=jr(t,r.shape),a=os(r,s,!0),o=Ne(r,a),i=Kr(o),l=_e(i,s),u=Rr(l),c=pe(J(a,u.shape),u);if(n){let d=ei(c.shape,s);return J(c,d)}return c}var mI=V({logSumExp_:Xq});function Zq(e,t){let n=O(e,"a","logicalAnd","bool"),r=O(t,"b","logicalAnd","bool");Rt(n.shape,r.shape);let s={a:n,b:r};return G.runKernel(Uc,s)}var is=V({logicalAnd_:Zq});function Yq(e){let n={x:O(e,"x","logicalNot","bool")};return G.runKernel(ef,n)}var Ef=V({logicalNot_:Yq});funct
${s.shape}`);if(a.rank!==1)throw new Error(`ValuesshouldbeTensor1Dbutreceivedshape${a.shape}`);if(o.rank!==1)throw new Error(`DenseshapeshouldbeTensor1Dbutreceivedshape${o.shape}`);if(i.rank!==0)throw new Error(`Defaultvalueshouldbeascalarbutreceivedshape${i.shape}`);let l={indices:s,values:a,denseShape:o,defaultValue:i},u=G.runKernel(Ky,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var ZZ=V({sparseFillEmptyRows_:XZ});function YZ(e,t,n){let r=O(e,"inputIndices","sparseReshape"),s=O(t,"inputShape","sparseReshape"),a=O(n,"newShape","sparseReshape");if(r.rank!==2)throw new Error(`InputindicesshouldbeTensor2Dbutreceivedshape
${r.shape}`);if(s.rank!==1)throw new Error(`InputshapeshouldbeTensor1Dbutreceivedshape${s.shape}`);if(a.rank!==1)throw new Error(`NewshapeshouldbeTensor1Dbutreceivedshape${a.shape}`);let o={inputIndices:r,inputShape:s,newShape:a},i=G.runKernel(Xy,o);return{outputIndices:i[0],outputShape:i[1]}}var JZ=V({sparseReshape_:YZ});function QZ(e,t,n){let r=O(e,"data","sparseSegmentMean"),s=O(t,"indices","sparseSegmentMean"),a=O(n,"segmentIds","sparseSegmentMean");if(r.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.rank!==1)throw new Error(`IndicesshouldbeTensor1Dbutreceivedshape
${s.shape}`);if(a.rank!==1)throw new Error(`SegmentidsshouldbeTensor1Dbutreceivedshape
${a.shape}`);let o={data:r,indices:s,segmentIds:a};return G.runKernel(Zy,o)}var eY=V({sparseSegmentMean_:QZ});function tY(e,t,n){let r=O(e,"data","sparseSegmentSum"),s=O(t,"indices","sparseSegmentSum"),a=O(n,"segmentIds","sparseSegmentSum");if(r.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.rank!==1)throw new Error(`IndicesshouldbeTensor1Dbutreceivedshape
${s.shape}`);if(a.rank!==1)throw new Error(`SegmentidsshouldbeTensor1Dbutreceivedshape
${a.shape}`);let o={data:r,indices:s,segmentIds:a};return G.runKernel(Yy,o)}var nY=V({sparseSegmentSum_:tY});function rY(e,t,n,r,s,a,o,i){let l=O(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Datamustbeavector,saw:${l.shape}`);let u=O(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:n,nGramWidths:r,leftPad:s,rightPad:a,padWidth:o,preserveShortSequences:i},d={data:l,dataSplits:u},h=G.runKernel(Qy,d,c);return{nGrams:h[0],nGramsSplits:h[1]}}var sY=V({stringNGrams_:rY});function aY(e,t,n=!0){let r=O(e,"input","stringSplit","string"),s=O(t,"delimiter","stringSplit","string");if(r.rank!==1)throw new Error(`InputshouldbeTensor1Dbutreceivedshape${r.shape}`);if(s.rank!==0)throw new Error(`Delimitershouldbeascalarbutreceivedshape${s.shape}`);let a={skipEmpty:n},o={input:r,delimiter:s},i=G.runKernel(eA,o,a);return{indices:i[0],values:i[1],shape:i[2]}}var oY=V({stringSplit_:aY});function iY(e,t){let n=O(e,"input","stringToHashBucketFast","string"),r={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let s={input:n};return G.runKernel(tA,s,r)}var lY=V({stringToHashBucketFast_:iY}),ni={flipLeftRight:sZ,resizeNearestNeighbor:LI,resizeBilinear:zI,rotateWithOffset:oZ,cropAndResize:nZ,nonMaxSuppression:lZ,nonMaxSuppressionAsync:gZ,nonMaxSuppressionWithScore:AZ,nonMaxSuppressionWithScoreAsync:bZ,nonMaxSuppressionPadded:wZ,nonMaxSuppressionPaddedAsync:IZ,threshold:EZ,transform:_Z},uY={bandPart:DZ,gramSchmidt:MZ,qr:PZ},Vf={sparseFillEmptyRows:ZZ,sparseReshape:JZ,sparseSegmentMean:eY,sparseSegmentSum:nY},p1={stringNGrams:sY,stringSplit:oY,stringToHashBucketFast:lY},Ha=class extends B6{minimize(e,t=!1,n){let{value:r,grads:s}=this.computeGradients(e,n);if(n!=null){let a=n.map(o=>({name:o.name,tensor:s[o.name]}));this.applyGradients(a)}else this.applyGradients(s);return je(s),t?r:(r.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return zq(e,t)}dispose(){this.iterations_!=null&&je(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:Fe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights()isnotimplementedforthisoptimizerclass${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Ha,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var f1=class extends Ha{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=G.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(n=>n.name):Object.keys(e)).forEach((n,r)=>{let s=G.registeredVariables[n],a=!1;this.accumulatedGrads[r]==null&&(this.accumulatedGrads[r]={originalName:`${n}/accum_grad`,variable:Z(()=>rt(s).variable(a))}),this.accumulatedUpdates[r]==null&&(this.accumulatedUpdates[r]={originalName:`${n}/accum_var`,variable:Z(()=>rt(s).variable(a))});let o=Array.isArray(e)?e[r].tensor:e[n];if(o==null)return;let i=this.accumulatedGrads[r].variable,l=this.accumulatedUpdates[r].variable;Z(()=>{let u=pe(K(i,this.rho),K(wt(o),1-this.rho)),c=K(Re($n(pe(l,this.epsilon)),$n(pe(i,this.epsilon))),o),d=pe(K(l,this.rho),K(wt(c),1-this.rho));i.assign(u),l.assign(d);let h=pe(K(c,-this.learningRate),s);s.assign(h)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(je(this.accumulatedGrads.map(e=>e.variable)),je(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variabl
2.Thecustom${r}isdefinedinJavaScript,butisnotregisteredproperlywithtf.serialization.registerClass().`);return o}else{let a=e;if(a.className==null||a.config==null)throw new q(`${r}:Improperconfigformat:${JSON.stringify(a)}.
'className'and'config'mustset.`);let o=a.className,i,l;if(o in n?[i,l]=n[o]:o in Xr?[i,l]=Xr.className:o in t&&([i,l]=t[o]),i==null)throw new q(`Unknown${r}:${o}.Thismaybeduetooneofthefollowingreasons:
2.Thecustom${r}isdefinedinJavaScript,butisnotregisteredproperlywithtf.serialization.registerClass().`);if(l!=null){let u={};for(let p of Object.keys(Xr))u[p]=Xr[p];for(let p of Object.keys(n))u[p]=n[p];let c=a.config;c.customObjects=u;let d={...Xr};for(let p of Object.keys(n))Xr[p]=n[p];S1(a.config);let h=l(i,a.config,n,s);return Xr={...d},h}else{let u={...Xr};for(let d of Object.keys(n))Xr[d]=n[d];let c=new i(a.config);return Xr={...u},c}}}function ZQ(e,t){return e<t?-1:e>t?1:0}function Hf(e,t){return-1*ZQ(e,t)}function Ga(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function YQ(e){if(e==null)throw new q(`Invalidvalueinobj:${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function oi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new q(`${n}isnotavalid${t}.Validvaluesare${e}ornull/undefined.`)}function T1(e,t,n=0,r=Infinity){return Ds(n>=0),Ds(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every(s=>typeof s===t)}function An(e,t){Array.isArray(e)?(k.assert(e.length>0,()=>`${t}isunexpectedlyanemptyarray.`),e.forEach((n,r)=>An(n,`element${r+1}of${t}`))):k.assert(Number.isInteger(e)&&e>0,()=>`Expected${t}tobeapositiveinteger,butgot${rS(e)}.`)}function rS(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>rS(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function JQ(e,t){let n=k.now(),r;return(...a)=>{let o=k.now();return o-n<t||(n=o,r=e(...a)),r}}function sS(e){return e==="relu"?"relu":e==="linear"?"linear":e==="elu"?"elu":null}function N1(e,t){return Z(()=>$n(_e(K(e,e),t,!0)))}var Od=class extends ce.Serializable{getConfig(){return{}}},C1=class extends Od{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return Z(()=>{let t=N1(e,this.axis),n=cr(t,0,this.maxValue);return K(e,Re(n,pe(cn(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};C1.className="MaxNorm";ce.registerClass(C1);var E1=class extends Od{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return Z(()=>Re(e,pe(cn(),N1(e,this.axis))))}getConfig(){return{axis:this.axis}}};E1.className="UnitNorm";ce.registerClass(E1);var $1=class extends Od{apply(e){return ua(e)}};$1.className="NonNeg";ce.registerClass($1);var _1=class extends Od{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return Z(()=>{let t=N1(e,this.axis),n=pe(K(this.rate,cr(t,this.minValue,this.maxValue)),K(1-this.rate,t));return K(e,Re(n,pe(cn(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};_1.className="MinMaxNorm";ce.registerClass(_1);var aS={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function dn(e){return I1(e)}function oS(e,t={}){return Md(e,ce.SerializationMap.getMap().classNameMap,t,"constraint")}function hn(e){if(e==null)return null;if(typeof e=="string"){let n={className:e in aS?aS[e]:e,config:{}};return oS(n)}else return e instanceof Od?e:oS(e)}function QQ(e){return new C1(e)}function eee(e){return new E1(e)}function tee(){return new $1}function nee(e){return new _1(e)}var iS={};De(iS,{constant:()=>See,glorotNormal:()=>Ree,glorotUniform:()=>_ee,heNormal:()=>Dee,heUniform:()=>Fee,identity:()=>Eee,leCunNormal:()=>Mee,leCunUniform:()=>Oee,ones:()=>Iee,orthogonal:()=>Pee,randomNormal:()=>Nee,randomUniform:()=>Tee,truncatedNormal:()=>Cee,varianceScaling:()=>$ee,zeros:()=>kee});var ree=["channelsFirst","channelsLast"],see=["nearest","bilinear"],aee=["valid","same","causal"],oee=["max","avg"],iee=["sum","mul","concat","ave"],nu=new Map;function Yt(e){oi(ree,"DataFormat",e)}function lee(e){oi(see,"Interpolatio
becausethevaluedtypeis${t.dtype},butTensorArraydtypeis${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Yr(this.elementShape,t.shape,`TensorArray${this.name}:CouldnotwritetoTensorArrayindex${e}.`),n.read)throw new Error(`TensorArray${this.name}:CouldnotwritetoTensorArrayindex${e},becauseithasalreadybeenread.`);if(n.written)throw new Error(`TensorArray${this.name}:CouldnotwritetoTensorArrayindex${e},becauseithasalreadybeenwritten.`);n.tensor=t,Sn(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray${this.name}:couldnotwritemultipletensors,becausetheindexsize:${e.length}isnotthesameastensorssize:${t.length}.`);e.forEach((n,r)=>this.write(n,t[r]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}butgatherrequesteddtype${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let r=0;r<this.size();r++)e.push(r)}if(e.length===0)return $s([],[0].concat(this.elementShape));let n=this.readMany(e);return Yr(this.elementShape,n[0].shape,"TensorArray shape mismatch: "),Mr(n,0)}concat(e){if(!!e&&e!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}butconcatrequesteddtype${e}`);if(this.size()===0)return $s([],[0].concat(this.elementShape));let t=[];for(let r=0;r<this.size();r++)t.push(r);let n=this.readMany(t);return Yr(this.elementShape,n[0].shape,`TensorArrayshapemismatch:tensorarrayshape(${this.elementShape})vsfirsttensorshape(${n[0].shape})`),en(n,0)}scatter(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}buttensorhasdtype${t.dtype}`);if(e.length!==t.shape[0])throw new Error(`Expectedlen(indices)==tensor.shape[0],butsaw:${e.length}vs.${t.shape[0]}`);let n=Math.max(...e);if(!this.dynamicSize&&n>=this.maxSize)throw new Error(`Maxindexmustbe<arraysize(${n}vs.${this.maxSize})`);this.writeMany(e,ls(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArraydtypeis${this.dtype}buttensorhasdtype${t.dtype}`);let n=0,r=e.map(i=>(n+=i,n));if(n!==t.shape[0])throw new Error(`Expectedsumoflengthstobeequalto
${n},andtensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray'ssizeisnotequaltothesizeoflengths(${this.maxSize}vs.${e.length}),andtheTensorArrayisnotmarkedasdynamicallyresizeable`);let s=n===0?0:t.size/n,a=[];Z(()=>{t=J(t,[1,n,s]);for(let i=0;i<e.length;++i){let l=i===0?0:r[i-1],u=[0,l,0],c=[1,e[i],s];a[i]=J(nt(t,u,c),this.elementShape)}return a});let o=[];for(let i=0;i<e.length;i++)o[i]=i;this.writeMany(o,a)}},Qd=class{constructor(e,t,n,r=-1){this.tensors=e,this.elementShape=t,this.elementDtype=n,e!=null&&e.forEach(s=>{if(n!==s.dtype)throw new Error(`Invaliddatatypes;opelements${n},butlistelements${s.dtype}`);Yr(t,s.shape,"TensorList shape mismatch: "),Sn(s)}),this.idTensor=Fe(0),this.maxNumElements=r,Sn(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Qd([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${t},butlistelements${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operationexpectedalistwith${n}elementsbutgotalistwith${this.tensors.length}elements.`);Yr(e,this.elementShape,"TensorList shape mismatch: ");let r=Jd(this.elementShape,this.tensors,e);return Z(()=>{let s=this.tensors.map(a=>J(a,r));return Mr(s,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${t},butlistelements${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Jd(this.elementShape,this.tensors,e),r=this.tensors.pop();return Yr(r.shape,e,"TensorList shape mismatch: "),J(r,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${e.dtype},butlistelements${this.elementDtype}`);if(Yr(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Sn(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResizeexpectssizetobenon-negative.Got:${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResizeinputsize${e}isgreatermaxNumElement${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${n},butlistelements${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Tryingtoaccesselement${e}inalistwith${this.tensors.length}elements.`);if(this.tensors[e]==null)throw new Error(`elementatindex${e}isnull.`);Yr(this.tensors[e].shape,t,"TensorList shape mismatch: ");let r=Jd(this.elementShape,this.tensors,t);return J(this.tensors[e],r)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${t.dtype},butlistelements${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Tryingtosetelement${e}inalistwithmax${this.maxNumElements}elements.`);Yr(this.elementShape,t.shape,"TensorList shape mismatch: "),Sn(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invaliddatatypes;opelements${t},butlistelements${this.elementDtype}`);Yr(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let r=Jd(this.elementShape,this.tensors,n);return e.length===0?$s([],[0].concat(r)):Z(()=>{let s=e.map(a=>J(this.tensors[a],r));return Mr(s,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorListdtypeis${this.elementDtype}butconcatrequesteddtype${e}`);Yr(this.elementShape,t,"TensorList shape mismatch: ");let n=Jd(this.elementShape,this.tensors,t);return this.size()===0?$s([],[0].concat(n)):Z(()=>{let r=this.tensors.map(s=>J(s,n));return en(r,0)})}};function ase(e,t,n){let r=e.dtype;if(e.shape.length<1)throw new Error(`Tensor
${e}`);let r;return this.size===Infinity||this.size==null?r=this.size:t?r=Math.ceil(this.size/e):r=Math.floor(this.size/e),pr(async()=>(await n.iterator()).columnMajorBatch(e,t,iae),r)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,pr(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,pr(async()=>(await t.iterator()).filter(r=>Z(()=>e(r))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return pr(async()=>(await t.iterator()).map(n=>Z(()=>e(n))),this.size)}mapAsync(e){let t=this;return pr(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return pr(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=Infinity:n=null,pr(async()=>{let r=N5(async()=>({value:await t.iterator(),done:!1}));return Gse(r.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size<e||e===void 0||e<0)?n=0:n=null,pr(async()=>(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);letr=this,s=Pse.alea(t||k.now().toString());returnpr(async()=>{leta=s.int32();returnn&&(a+=s.int32()),(awaitr.iterator()).shuffle(e,a.toString())},this.size)}take(e){lett=this,n;returnthis.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,pr(async()=>(awaitt.iterator()).take(e),n)}asynctoArray(){if(this.size===Infinity)thrownewError("Can not convert infinite data stream to array.");return(awaitthis.iterator()).toArray()}asynctoArrayForTest(){if(this.size===Infinity)thrownewError("Can not convert infinite data stream to array.");return(awaitthis.iterator()).toArrayForTest()}};uu.MAX_BUFFER_SIZE=1e4;functionpr(e,t=null){returnnewclassextendsuu{constructor(){super(...arguments);this.size=t}asynciterator(){returne()}}}functionaae(e){returnpr(async()=>TT(e),e.length)}functionoae(e){if(!lu(e))thrownewError("The argument to zip() must be an object or array.");lett;if(Array.isArray(e))for(letn=0;n<e.length;n++)t=t==null?e[n].size:Math.min(t,e[n].size);elseif(einstanceofObject)for(letnine)t=t==null?e[n].size:Math.min(t,e[n].size);returnpr(async()=>{letn=awaitwT(e,r=>{if(rinstanceofuu)return{value:r.iterator(),recurse:!1};if(lu(r))return{value:null,recurse:!0};thrownewError("Leaves of the structure passed to zip() must be Datasets, not primitives.")});returnjse(n,Tm.SHORTEST)},t)}functioniae(e){if(e===null)returnnull;lett=e[0];returnWse(t)?{value:lae(e),recurse:!1}:{value:null,recurse:!0}}functionlae(e){if(e.length===0)thrownewError("Can't make a batch of zero elements.");returne[0]instanceofCt?Mr(e):$s(e)}var$T=classextendsuu{constructor(e){super();this.input=e}asynciterator(){return(awaitthis.input.iterator()).decodeUTF8().split(`
`).map(r=>(r.endsWith("\r")&&(r=r.slice(0,-1)),r))}},Nm='"',eh=Symbol("out"),_T=Symbol("field"),Cm=Symbol("quote"),E5=Symbol("quoteafterquote"),RT=Symbol("quoteinquote"),DT=class extends uu{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new $T(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(k.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&k.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((r,s)=>(r[s]=r[s]+1||1,r),{}),n=Object.keys(t).filter(r=>t[r]>1);if(k.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let r of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(r)===-1)throw new Error('The key "'+r+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let t=await(await this.base.iterator()).next();if(t.done)throw new Error("No data was found for CSV parsing.");let n=t.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},r={};for(let s=0;s<this.fullColumnNames.length;s++){let a=this.fullColumnNames[s],o=this.columnConfigs?this.columnConfigs[a]:null;if(!(this.configuredColumnsOnly&&!o)){let i=t[s],l=null;if(i==="")if(o&&o.default!==void 0)l=o.default;else{if(o&&(o.required||o.isLabel))throw new Error(`Requiredcolumn${a}isemptyinthisline:${e}`);l=void 0}else{let u=Number(i);if(isNaN(u))o&&o.dtype==="bool"?l=this.getBoolean(i):l=i;else if(!o||!o.dtype)l=u;else switch(o.dtype){case"float32":l=u;break;case"int32":l=Math.floor(u);break;case"bool":l=this.getBoolean(i);break;default:l=u}}o&&o.isLabel?r[a]=l:n[a]=l}}return Object.keys(r).length===0?n:{xs:n,ys:r}}getBoolean(e){return e==="1"||e.toLowerCase()==="true"?1:0}parseRow(e,t=!0){let n=[],r=0,s=e.length,a=eh;for(let o=0;o<s;o++)switch(a){case eh:switch(e.charAt(o)){case Nm:r=o+1,a=Cm;break;case this.delimiter:if(r=o+1,this.delimiter===" "&&this.delimWhitespace)break;n.push(""),a=eh;break;default:a=_T,r=o;break}break;case _T:switch(e.charAt(o)){case this.delimiter:n.push(e.substring(r,o)),a=eh,r=o+1;break;default:}break;case Cm:switch(e.charAt(o)){case Nm:a=E5;break;default:}break;case E5:switch(e.charAt(o)){case this.delimiter:n.push(e.substring(r,o-1)),a=eh,r=o+1;break;case Nm:a=Cm;break;default:a=RT;break}break;case RT:switch(e.charAt(o)){case Nm:a=Cm;break;default:}break;default:}if(a===E5?n.push(e.substring(r,s-1)):n.push(e.substring(r)),t&&n.length!==this.fullColumnNames.length)throw new Error(`Invalidrowincsvfile.Shouldhave${this.fullColumnNames.length}elementsinarow,butgot${n}`);return n}},FT=class extends xn{constructor(e){super();this.microphoneConfig=e,this.isClosed=!1,this.fftSize=e.fftSize||1024;let t=Math.log2(this.fftSize);if(this.fftSize<0||t<4||t>14||!Number.isInteger(t))throw new Error(`InvalidfftSi
Hithere\u{1F44B}.LookslikeyouarerunningTensorFlow.jsinNode.js.Tospeedthingsupdramatically,installournodebackend,whichbindstoTensorFlowC++,byrunningnpmi@tensorflow/tfjs-node,ornpmi@tensorflow/tfjs-node-gpuifyouhaveCUDA.Thencallrequire('@tensorflow/tfjs-node');(-gpusuffixforCUDA)atthestartofyourprogram.Visithttps://github.com/tensorflow/tfjs-node for more details.
============================`));let r={id:this.nextDataId()};return this.data.set(r,{values:e,dtype:n,refCount:1}),r}makeTensorInfo(e,t,n){let r;if(t==="string"&&n!=null&&n.length>0&&k.isString(n[0])){let s=n.map(a=>k.encodeString(a));r=this.write(s,e,t)}else r=this.write(n,e,t);return{dataId:r,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,r,s){this.data.set(e,{values:t,dtype:r,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let r=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(r,s)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(r=>k.decodeString(r))}catch(r){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let r=this.write(e,t,n);return za().makeTensorFromDataId(r,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){Te([e],"where");let t=this.readSync(e.dataId);return wae(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}},$5=VT;$5.nextDataId=0;var UT={};De(UT,{addImpl:()=>GT,bincountImpl:()=>R5,bincountReduceImpl:()=>jT,ceilImpl:()=>qT,concatImpl:()=>KT,equalImpl:()=>XT,expImpl:()=>YT,expm1Impl:()=>QT,floorImpl:()=>eN,gatherNdImpl:()=>tN,gatherV2Impl:()=>nN,greaterEqualImpl:()=>sN,greaterImpl:()=>rN,lessEqualImpl:()=>oN,lessImpl:()=>aN,linSpaceImpl:()=>iN,logImpl:()=>lN,maxImpl:()=>uN,maximumImpl:()=>cN,minimumImpl:()=>dN,multiplyImpl:()=>D5,negImpl:()=>hN,notEqualImpl:()=>pN,prodImpl:()=>fN,rangeImpl:()=>mN,rsqrtImpl:()=>gN,simpleAbsImpl:()=>HT,sliceImpl:()=>yN,sparseFillEmptyRowsImpl:()=>AN,sparseReshapeImpl:()=>xN,sparseSegmentReductionImpl:()=>M5,squaredDifferenceImpl:()=>bN,stridedSliceImpl:()=>vN,stringNGramsImpl:()=>wN,stringSplitImpl:()=>kN,stringToHashBucketFastImpl:()=>IN,subImpl:()=>SN,tileImpl:()=>TN,topKImpl:()=>NN,transposeImpl:()=>F5,uniqueImpl:()=>CN});function HT(e){let t=new Float32Array(e.length);for(let n=0;n<e.length;++n)t[n]=Math.abs(e[n]);return t}var kae=e=>{let{x:t}=e.inputs,n=e.backend;Te(t,"abs");let r=new Float32Array(k.sizeFromShape(t.shape)),s=n.data.get(t.dataId).values;return r=HT(s),n.makeOutput(r,t.shape,"float32")},Iae={kernelName:xc,backendName:"cpu",kernelFunc:kae};function nn(e){return(t,n,r,s,a)=>{let o=_.assertAndGetBroadcastShape(t,n),i=o.length,l=k.computeStrides(o),u=k.sizeFromShape(o),c=k.getTypedArrayFromDType(a,u),d=t.length,h=n.length,p=k.computeStrides(t),f=k.computeStrides(n),m=_.getBroadcastDims(t,o),g=_.getBroadcastDims(n,o);if(m.length+g.length===0)for(let y=0;y<c.length;++y)c[y]=e(r[y%r.length],s[y%s.length]);else for(let y=0;y<c.length;++y){let A=k.indexToLoc(y,i,l),x=A.slice(-d);m.forEach(I=>x[I]=0);let b=k.locToIndex(x,d,p),v=A.slice(-h);g.forEach(I=>v[I]=0);let w=k.locToIndex(v,h,f);c[y]=e(r[b],s[w])}return[c,o]}}function fr(e){let{inputs:t,backend:n}=e,{real:r,imag:s}=t,a=n.data.get(r.dataId).values,o=n.data.get(s.dataId).values,i=n.makeTensorInfo(r.shape,"complex64"),l=n.data.get(i.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(r.shape,"float32",a),imag:n.makeTensorInfo(s.shape,"float32",o)},i}var Sae={kernelName:Iy,backendName:"cpu",kernelFunc:fr};function Em(e,t,n="float32"){if(n==="complex64"){let s=Em(e,t,"float32"),a=Em(e,t,"float32");return fr({inputs:{re
indices.shape[0]=${i}`);let g=k.getArrayFromDType(n,0),y=k.getArrayFromDType(s,0);return[g,[0,d],y,u,c]}let h=!0,p=0,f=new Array(l).fill(0);for(let g=0;g<i;++g){let y=e[g*d];if(y<0)throw new Error(`indices(${g},0)isinvalid:${y}<0`);if(y>=l)throw new Error(`indices(${g},0)isinvalid:${y}>=${l}`);++f[y],h=h&&y>=p,p=y}let m=!0;for(let g=0;g<l;++g){let y=f[g]===0;u[g]=y,m=m&&!y,f[g]=Math.max(f[g],1),g>0&&(f[g]+=f[g-1])}if(m&&h){let g=e,y=r;for(let A=0;A<i;++A)c[A]=A;return[g,[i,d],y,u,c]}else{let g=f[l-1],y=k.getArrayFromDType(n,g*d),A=k.getArrayFromDType(s,g),x=new Array(l).fill(0);for(let b=0;b<i;++b){let v=e[b*d],w=x[v],I=(v===0?0:f[v-1])+w;x[v]++;for(let T=0;T<d;++T)y[I*d+T]=e[b*d+T];A[I]=r[b],c[b]=I}for(let b=0;b<l;++b)if(x[b]===0){let w=b===0?0:f[b-1];y[w*d+0]=b;for(let I=1;I<d;++I)y[w*d+I]=0;A[w]=o}return[y,[g,d],A,u,c]}}function xN(e,t,n,r,s){let a=k.sizeFromShape(r),o=t[0],i=s.length,l=[],u=1,c=-1;for(let g=0;g<i;++g){let y=s[g];if(y===-1){if(c!==-1)throw new Error(`onlyoneoutputdimensionmaybe-1,notboth${c}and${g}`);c=g,l.push(1)}else{if(y<0)throw new Error(`size${g}mustbenon-negative,not${y}`);u*=y,l.push(y)}}if(c!==-1){if(u<=0)throw new Error("reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero");let g=Math.trunc(a/u);if(u*g!==a)throw new Error(`InputtoreshapeisaSparseTensorwith${a}
densevalues,buttherequestedshaperequiresamultipleof${u}.inputShape=${r}outputShape=${l}`);l[c]=g}let d=k.sizeFromShape(l);if(d!==a)throw new Error(`Inputtoreshapeisatensorwith${a}densevalues,buttherequestedshapehas${d}.inputShape=${r}outputShape=${l}`);let h=r.length,p=[];if(h>0){p[h-1]=1;for(let g=h-2;g>=0;--g)p[g]=p[g+1]*r[g+1]}let f=[];if(i>0){f[i-1]=1;for(let g=i-2;g>=0;--g)f[g]=f[g+1]*l[g+1]}let m=k.getArrayFromDType(n,o*i);for(let g=0;g<o;++g){let y=0;for(let A=0;A<h;++A)y+=e[g*h+A]*p[A];for(let A=0;A<i;++A)m[g*i+A]=Math.trunc(y/f[A]),y%=f[A]}return[m,[o,i],l]}function M5(e,t,n,r,s,a=!1,o=0){let i=r.length;if(i!==s.length)throw new Error("segmentIds and indices should have same size.");let l=[t[0],e.length/t[0]],u=l[1],d=i>0?s[i-1]+1:0;if(d<0)throw new Error("segment ids must be >= 0");let h=t.slice();h[0]=d;let p=h.reduce((x,b)=>x*b,1),f=k.getArrayFromDType(n,p);if(i===0)return d>0&&f.fill(o),[f,h];if(d<=0)throw new Error("segment ids must be >= 0");let m=0,g=1,y=0,A=s[m];for(;;){let x=0;if(g<i){if(x=s[g],A===x){++g;continue}if(A>=x)throw new Error("segment ids are not increasing")}if(A<0||A>=d)throw new Error(`Segmentid${A}outofrange[0,${d}),possiblybecausesegmentIdsinputisnotsorted.`);A>y&&f.fill(o,y*u,A*u);for(let b=m;b<g;++b){let v=r[b];if(v<0||v>=l[0])throw new Error(`Bad:indices[${b}]==${r[b]}outofrange[0,${l[0]})`);for(let w=0;w<u;w++)f[A*u+w]+=e[v*u+w]}if(a)for(let b=0;b<u;b++)f[A*u+b]/=g-m;if(m=g,++g,y=A+1,A=x,g>i)break}return y<d&&f.fill(o,y*u,d*u),[f,h]}var bN=nn((e,t)=>{let n=e-t;return n*n}),doe=bn(Po,bN),hoe={kernelName:Po,backendName:"cpu",kernelFunc:doe};function vN(e,t,n,r){let s=Le(e,t.dtype);for(let a=0;a<s.size;a++){let o=s.indexToLoc(a),i=new Array(o.length);for(let l=0;l<i.length;l++)i[l]=o[l]*n[l]+r[l];s.set(t.get(...i),...o)}return s}var poe=class{constructor(e,t,n,r,s,a){this.separator=k.encodeString(e),this.nGramWidths=t,this.leftPad=k.encodeString(n),this.rightPad=k.encodeString(r),this.padWidth=s,this.preserveShort=a}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){let n=this.getPadWidth(t);return Math.max(0,e+2*n-t+1)}createNGrams(e,t,n,r,s,a){for(let o=0;o<s;++o){let i=this.getPadWidth(a),l=Math.max(0,i-o),u=Math.max(0,i-(s-(o+1))),c=a-(l+u),d=t+(l>0?0:o-i),h=0;h+=l*this.leftPad.length;for(let y=0;y<c;++y)h+=e[d+y].length;h+=u*this.rightPad.length,h+=(l+u+c-1)*this.separator.length,n[r+o]=new Uint8Array(h);let f=n[r+o],m=0,g=y=>y.forEach(A=>f[m++]=A);for(let y=0;y<l;++y)g(this.leftPad),g(this.separator);for(let y=0;y<c-1;++y)g(e[d+y]),g(this.separator);if(c>0){g(e[d+c-1]);for(let y=0;y<u;++y)g(this.separator),g(this.rightPad)}else{for(let y=0;y<u-1;++y)g(this.rightPad),g(this.separator);g(this.rightPad)}}}compute(e,t){let n=e.length,r=t.length;if(r>0){let i=t[0];if(i!==0)throw new Error(`Firstsplitvaluemustbe0,got${i}`);for(let l=1;l<r;++l){let u=t[l]>=i;if(u=u&&t[l]<=n,!u)throw new Error(`Invalidsplitvalue${t[l]},mustbein[${i},${n}]`);i=t[l]}if(i!==n)throw new Error(`Lastsplitvaluemustbedatasize.Expected${n},got${i}`)}let s=r-1,a=k.getArrayFromDType("int32",r);if(n===0||r===0){let i=new Array(n);for(let l=0;l<=s;++l)a[l]=0;return[i,a]}a[0]=0;for(let i=1;i<=s;++i){let l=t[i]-t[i-1],u=0;this.nGramWidths.forEach(c=>{u+=this.getNumNGrams(l,c)}),this.preserveShort&&l>0&&u===0&&(u=1),a[i]=a[i-1]+u}let o=new Array(a[s]);for(let i=0;i<s;++i){let l=t[i],u=a[i];if(this.nGramWidths.forEach(c=>{let d=t[i+1]-t[i],h=this.getNumNGrams(d,c);this.createNGrams(e,l,o,u,h,c),u+=h}),this.preserveShort&&u===a[i]){let c=t[i+1]-t[i];if(c===0)continue;let d=c+2*this.padWidth,h=1;this.createNGrams(e,l,o,u,h,d)}}return[o,a]}};function wN(e,t,n,r,s,a,o,i){return new poe(n,r,s,a,o,i).compute(e,t)}function foe(e,t,n){if(!e.length)return[];if(t.length===0){let a=new Array(e.length);for(let o=0;o<e.length;++o)a[o]=e.subarray(o,o+1);return a}if(t.length===1){let a=t[0],o=[],i=e.indexOf(a);for(;i!==-1;){let l=e.subarray(0,i);(!n||l.length!==0)&&o.push(l),e=e.subarray(i+1),i=e.indexOf(a)}retur
${a.shape}`);if(r.shape.length!==2)throw new Error(`Indicesmustbeamatrix,saw:
${r.shape}`);if(s.shape.length!==1)throw new Error(`Valuesmustbeavector,saw:
${s.shape}`);if(o.shape.length!==0)throw new Error(`Defaultvaluemustbeascalar,saw:
${o.shape}`);let i=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=n.data.get(a.dataId).values,c=n.data.get(o.dataId).values[0],[d,h,p,f,m]=AN(i,r.shape,r.dtype,l,s.dtype,u,c);return[n.makeTensorInfo(h,r.dtype,d),n.makeTensorInfo([h[0]],s.dtype,p),n.makeTensorInfo([f.length],"bool",new Uint8Array(f.map(g=>Number(g)))),n.makeTensorInfo([m.length],r.dtype,new Int32Array(m))]}var Ece={kernelName:Ky,backendName:"cpu",kernelFunc:Cce};function $ce(e){let{inputs:t,backend:n}=e,{inputIndices:r,inputShape:s,newShape:a}=t;if(r.shape.length!==2)throw new Error(`Inputindicesshouldbeamatrixbutreceivedshape
${r.shape}`);if(s.shape.length!==1)throw new Error(`Inputshapeshouldbeavectorbutreceivedshape
${s.shape}`);if(a.shape.length!==1)throw new Error(`Targetshapeshouldbeavectorbutreceivedshape${a.shape}`);let o=Array.from(n.data.get(s.dataId).values),i=n.data.get(r.dataId).values,l=Array.from(n.data.get(a.dataId).values),[u,c,d]=xN(i,r.shape,r.dtype,o,l);return[n.makeTensorInfo(c,r.dtype,u),n.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}var _ce={kernelName:Xy,backendName:"cpu",kernelFunc:$ce};function Rce(e){let{inputs:t,backend:n}=e,{data:r,indices:s,segmentIds:a}=t;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${s.shape}`);if(a.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${a.shape}`);let o=n.data.get(r.dataId).values,i=n.data.get(s.dataId).values,l=n.data.get(a.dataId).values,[u,c]=M5(o,r.shape,r.dtype,i,l,!0);return n.makeTensorInfo(c,r.dtype,u)}var Dce={kernelName:Zy,backendName:"cpu",kernelFunc:Rce};function Fce(e){let{inputs:t,backend:n}=e,{data:r,indices:s,segmentIds:a}=t;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${s.shape}`);if(a.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${a.shape}`);let o=n.data.get(r.dataId).values,i=n.data.get(s.dataId).values,l=n.data.get(a.dataId).values,[u,c]=M5(o,r.shape,r.dtype,i,l);return n.makeTensorInfo(c,r.dtype,u)}var Mce={kernelName:Yy,backendName:"cpu",kernelFunc:Fce};function Oce(e){let{inputs:t,backend:n,attrs:r}=e,{sparseIndices:s,sparseValues:a,defaultValue:o}=t,{outputShape:i}=r,{sliceRank:l,numUpdates:u,sliceSize:c,strides:d,outputSize:h}=_.calculateShapes(a,s,i),p=!1,f=n.bufferSync(s),m=n.bufferSync(a),g=n.data.get(o.dataId).values[0],y=jN(f,m,i,h,c,u,l,d,g,p);return n.makeTensorInfo(i,y.dtype,y.values)}var Pce={kernelName:Jy,backendName:"cpu",kernelFunc:Oce};function zce(e){let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{numOrSizeSplits:a,axis:o}=r,i=k.parseAxisParam(o,s.shape)[0],l=_.prepareSplitSize(s,a,i),u=new Array(s.shape.length).fill(0),c=s.shape.slice();return l.map(d=>{let h=[...c];h[i]=d;let p=fi({inputs:{x:s},backend:n,attrs:{begin:u,size:h}});return u[i]+=d,p})}var Lce={kernelName:id,backendName:"cpu",kernelFunc:zce},Bce=xt(Dl,e=>Math.sqrt(e)),Wce={kernelName:Dl,backendName:"cpu",kernelFunc:Bce},Vce={kernelName:lf,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,r=t;Te(n,"square");let s=r.data.get(n.dataId).values,a=new Float32Array(s.length);for(let i=0;i<s.length;++i){let l=s[i];a[i]=l*l}return{dataId:r.write(a,n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}},Uce=xt(Bo,(e,t)=>{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),Hce={kernelName:Bo,backendName:"cpu",kernelFunc:Uce};function Gce(e){let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{begin:a,end:o,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:d,shrinkAxisMask:h}=r;Te(s,"stridedSlice");let{nonStrided:p,$begin:f,$strides:m,size:g,newShape:y,outShape:A}=En.sliceInfo(s.shape,a,o,i,l,u,c,d,h),x=Ft({inputs:{x:s},backend:n,attrs:{shape:y}}),b;if(p){let w=fi({inputs:{x},backend:n,attrs:{begin:f,size:g}});b=Ft({inputs:{x:w},backend:n,attrs:{shape:A}}),n.disposeIntermediateTensorInfo(w)}else if(A.some(w=>w===0))b=n.makeTensorInfo(A,s.dtype,[]);else{let w=n.bufferSync(x),I=vN(A,w,m,f);b=n.makeTensorInfo(I.shape,I.dtype,I.values)}let v=Ft({inputs:{x:b},backend:n,attrs:{shape:A}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(b),v}var jce={kernelName:ld,backendName:"cpu",kernelFunc:Gce};function qce(e){let{inputs:t,backend:n,attrs:r}=e,{separator:s,nGramWidths:a,leftPad:o,rightPad:i,padWidth:l,preserveShortSequences:u}=r,{data:c,dataSplits:d}=t,h=n.data.get(c.dataId).values,p=n.data.get(d.dataId).values,[f,m]=wN(h,p,s,a,o,i,l,u);return[n.makeTensorInfo([f.length],"string",f),n.makeTensorInfo(d.shape,"int32",m)]}var Kce={kernelName:Qy,backendName:"cpu",kernelFunc:qce};function Xce(e){let{inputs:t,backend:n,attrs:r}=e,{skipEmpty:s}=r,{input:a,delimiter:o}=t;if(a.dtype!=="string")throw new Error("Input must be of datatype string");if(a.shape.length!==1)throw new Error(`Inputmustbeavector,gotshape:${a.shape}`);if(o.shape.length!==0)throw new Error(`Delimitermustbeascalar,gotshape:${o.shape}`);let i=n.data.get(a.dataId).values,l=n.data.get(o.dataId).values[0],[u,c,d]=kN(i,l,s),h=c.length;return[n.makeTensorInfo([h,2],"int32",u),n.makeTensorInfo([h],"string",c),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var Zce={kernelName:eA,backendName:"cpu",kernelFunc:Xce};function Yce(e){let{inputs:t,backend:n,attrs:r}=e,{numBuckets:s}=r,{input:a}=t;if(a.dtype!=="string")throw new Error("Input must be of datatype string");if(s<=0)throw new Error("Number of buckets must be at least 1");let o=n.data.get(a.dataId).values,i=IN(o,s);return n.makeTensorInfo(a.shape,"int32",i)}var Jce={kernelName:tA,backendName:"cpu",kernelFunc:Yce},Qce=xt(Ol,e=>Math.tan(e)),ede={kernelName:Ol,backendName:"cpu",kernelFunc:Qce},tde=xt(Pl,e=>Math.tanh(e)),nde={kernelName:Pl,backendName:"cpu",kernelFunc:tde};function rde(e){let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{reps:a}=r;Te(s,"tile");let o=TN(n.bufferSync(s),a);return n.makeTensorInfo(o.shape,o.dtype,o.values)}var sde={kernelName:Lo,backendName:"cpu",kernelFunc:rde};function ade(e){let{inputs:t,backend:n,attrs:r
`}function bhe(e){let t=e.shapeInfo.logicalShape,n=t.length,r=e.name,s="get"+r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape,o=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],i=o[0],l=o[1],u=Math.ceil(t[n-1]/2),c=u*Math.ceil(t[n-2]/2),d="int b, int row, int col",h=`b*${c}+(row/2)*${u}+(col/2)`;for(let f=2;f<n-1;f++)d=`intb${f},`+d,c*=t[n-f-1],h=`b${f}*${c}+`+h;let p=Wn();return`
indices.shape[0]=${i}`);let g=k.getArrayFromDType(n,0),y=k.getArrayFromDType(s,0);return[g,[0,d],y,u,c]}let h=!0,p=0,f=new Array(l).fill(0);for(let g=0;g<i;++g){let y=e[g*d];if(y<0)throw new Error(`indices(${g},0)isinvalid:${y}<0`);if(y>=l)throw new Error(`indices(${g},0)isinvalid:${y}>=${l}`);++f[y],h=h&&y>=p,p=y}let m=!0;for(let g=0;g<l;++g){let y=f[g]===0;u[g]=y,m=m&&!y,f[g]=Math.max(f[g],1),g>0&&(f[g]+=f[g-1])}if(m&&h){let g=e,y=r;for(let A=0;A<i;++A)c[A]=A;return[g,[i,d],y,u,c]}else{let g=f[l-1],y=k.getArrayFromDType(n,g*d),A=k.getArrayFromDType(s,g),x=new Array(l).fill(0);for(let b=0;b<i;++b){let v=e[b*d],w=x[v],I=(v===0?0:f[v-1])+w;x[v]++;for(let T=0;T<d;++T)y[I*d+T]=e[b*d+T];A[I]=r[b],c[b]=I}for(let b=0;b<l;++b)if(x[b]===0){let w=b===0?0:f[b-1];y[w*d+0]=b;for(let I=1;I<d;++I)y[w*d+I]=0;A[w]=o}return[y,[g,d],A,u,c]}}function Uhe(e,t,n,r,s){let a=k.sizeFromShape(r),o=t[0],i=s.length,l=[],u=1,c=-1;for(let g=0;g<i;++g){let y=s[g];if(y===-1){if(c!==-1)throw new Error(`onlyoneoutputdimensionmaybe-1,notboth${c}and${g}`);c=g,l.push(1)}else{if(y<0)throw new Error(`size${g}mustbenon-negative,not${y}`);u*=y,l.push(y)}}if(c!==-1){if(u<=0)throw new Error("reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero");let g=Math.trunc(a/u);if(u*g!==a)throw new Error(`InputtoreshapeisaSparseTensorwith${a}
densevalues,buttherequestedshaperequiresamultipleof${u}.inputShape=${r}outputShape=${l}`);l[c]=g}let d=k.sizeFromShape(l);if(d!==a)throw new Error(`Inputtoreshapeisatensorwith${a}densevalues,buttherequestedshapehas${d}.inputShape=${r}outputShape=${l}`);let h=r.length,p=[];if(h>0){p[h-1]=1;for(let g=h-2;g>=0;--g)p[g]=p[g+1]*r[g+1]}let f=[];if(i>0){f[i-1]=1;for(let g=i-2;g>=0;--g)f[g]=f[g+1]*l[g+1]}let m=k.getArrayFromDType(n,o*i);for(let g=0;g<o;++g){let y=0;for(let A=0;A<h;++A)y+=e[g*h+A]*p[A];for(let A=0;A<i;++A)m[g*i+A]=Math.trunc(y/f[A]),y%=f[A]}return[m,[o,i],l]}function Hhe(e,t,n,r,s,a=!1,o=0){let i=r.length;if(i!==s.length)throw new Error("segmentIds and indices should have same size.");let l=[t[0],e.length/t[0]],u=l[1],d=i>0?s[i-1]+1:0;if(d<0)throw new Error("segment ids must be >= 0");let h=t.slice();h[0]=d;let p=h.reduce((x,b)=>x*b,1),f=k.getArrayFromDType(n,p);if(i===0)return d>0&&f.fill(o),[f,h];if(d<=0)throw new Error("segment ids must be >= 0");let m=0,g=1,y=0,A=s[m];for(;;){let x=0;if(g<i){if(x=s[g],A===x){++g;continue}if(A>=x)throw new Error("segment ids are not increasing")}if(A<0||A>=d)throw new Error(`Segmentid${A}outofrange[0,${d}),possiblybecausesegmentIdsinputisnotsorted.`);A>y&&f.fill(o,y*u,A*u);for(let b=m;b<g;++b){let v=r[b];if(v<0||v>=l[0])throw new Error(`Bad:indices[${b}]==${r[b]}outofrange[0,${l[0]})`);for(let w=0;w<u;w++)f[A*u+w]+=e[v*u+w]}if(a)for(let b=0;b<u;b++)f[A*u+b]/=g-m;if(m=g,++g,y=A+1,A=x,g>i)break}return y<d&&f.fill(o,y*u,d*u),[f,h]}var lE=Br((e,t)=>{let n=e-t;return n*n}),r7e=Jr(Po,lE);function Ghe(e,t,n,r){let s=Le(e,t.dtype);for(let a=0;a<s.size;a++){let o=s.indexToLoc(a),i=new Array(o.length);for(let l=0;l<i.length;l++)i[l]=o[l]*n[l]+r[l];s.set(t.get(...i),...o)}return s}var jhe=class{constructor(e,t,n,r,s,a){this.separator=k.encodeString(e),this.nGramWidths=t,this.leftPad=k.encodeString(n),this.rightPad=k.encodeString(r),this.padWidth=s,this.preserveShort=a}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){let n=this.getPadWidth(t);return Math.max(0,e+2*n-t+1)}createNGrams(e,t,n,r,s,a){for(let o=0;o<s;++o){let i=this.getPadWidth(a),l=Math.max(0,i-o),u=Math.max(0,i-(s-(o+1))),c=a-(l+u),d=t+(l>0?0:o-i),h=0;h+=l*this.leftPad.length;for(let y=0;y<c;++y)h+=e[d+y].length;h+=u*this.rightPad.length,h+=(l+u+c-1)*this.separator.length,n[r+o]=new Uint8Array(h);let f=n[r+o],m=0,g=y=>y.forEach(A=>f[m++]=A);for(let y=0;y<l;++y)g(this.leftPad),g(this.separator);for(let y=0;y<c-1;++y)g(e[d+y]),g(this.separator);if(c>0){g(e[d+c-1]);for(let y=0;y<u;++y)g(this.separator),g(this.rightPad)}else{for(let y=0;y<u-1;++y)g(this.rightPad),g(this.separator);g(this.rightPad)}}}compute(e,t){let n=e.length,r=t.length;if(r>0){let i=t[0];if(i!==0)throw new Error(`Firstsplitvaluemustbe0,got${i}`);for(let l=1;l<r;++l){let u=t[l]>=i;if(u=u&&t[l]<=n,!u)throw new Error(`Invalidsplitvalue${t[l]},mustbein[${i},${n}]`);i=t[l]}if(i!==n)throw new Error(`Lastsplitvaluemustbedatasize.Expected${n},got${i}`)}let s=r-1,a=k.getArrayFromDType("int32",r);if(n===0||r===0){let i=new Array(n);for(let l=0;l<=s;++l)a[l]=0;return[i,a]}a[0]=0;for(let i=1;i<=s;++i){let l=t[i]-t[i-1],u=0;this.nGramWidths.forEach(c=>{u+=this.getNumNGrams(l,c)}),this.preserveShort&&l>0&&u===0&&(u=1),a[i]=a[i-1]+u}let o=new Array(a[s]);for(let i=0;i<s;++i){let l=t[i],u=a[i];if(this.nGramWidths.forEach(c=>{let d=t[i+1]-t[i],h=this.getNumNGrams(d,c);this.createNGrams(e,l,o,u,h,c),u+=h}),this.preserveShort&&u===a[i]){let c=t[i+1]-t[i];if(c===0)continue;let d=c+2*this.padWidth,h=1;this.createNGrams(e,l,o,u,h,d)}}return[o,a]}};function qhe(e,t,n,r,s,a,o,i){return new jhe(n,r,s,a,o,i).compute(e,t)}function Khe(e,t,n){if(!e.length)return[];if(t.length===0){let a=new Array(e.length);for(let o=0;o<e.length;++o)a[o]=e.subarray(o,o+1);return a}if(t.length===1){let a=t[0],o=[],i=e.indexOf(a);for(;i!==-1;){let l=e.subarray(0,i);(!n||l.length!==0)&&o.push(l),e=e.subarray(i+1),i=e.indexOf(a)}return(!n||e.length!==0)&&o.push(e),o}let r=[],s=0;for(
`}var Hpe=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let r=gE(t,n),s=yE(e,r,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let a=mE(e,r,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=a,this.log();let i=this.freeTextures[s].shift();return this.usedTextures[s].push(i),i}let o;return r===Tn.PACKED_2X2_FLOAT32?o=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===Tn.PACKED_2X2_FLOAT16?o=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===Tn.UNPACKED_FLOAT32?o=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===Tn.UNPACKED_FLOAT16?o=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===Tn.PACKED_4X1_UNSIGNED_BYTE&&(o=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[s].push(o),this.numUsedTextures++,this._numBytesAllocated+=a,this.log(),o}releaseTexture(e,t,n,r){if(this.freeTextures==null)return;let s=gE(n,r),a=yE(t,s,r);a in this.freeTextures||(this.freeTextures[a]=[]);let o=mE(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,r),i=ae().get("WEBGL_DELETE_TEXTURE_THRESHOLD");i!==-1&&this._numBytesAllocated>i?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=o):(this.freeTextures[a].push(e),this.numFreeTextures++,this._numBytesFree+=o),this.numUsedTextures--;let l=this.usedTextures[a],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures}/${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytesallocated:${this._numBytesAllocated}`),console.log(`Bytesunused:${this._numBytesFree}(${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function Gpe(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknowninternalformat${t}`)}function mE(e,t,n,r,s){let a=jpe(t,r),o;if(s){let[l,u]=fu(e[0],e[1]);o=l*u}else{let[l,u]=ah(e[0],e[1]);o=l*u}let i=Gpe(n,a);return o*i}function jpe(e,t){switch(e){case Tn.PACKED_2X2_FLOAT32:return Q5(t);case Tn.PACKED_2X2_FLOAT16:return eb(t);case Tn.UNPACKED_FLOAT32:return Z5(t);case Tn.UNPACKED_FLOAT16:return Y5(t);case Tn.PACKED_4X1_UNSIGNED_BYTE:return J5(t);default:throw new Error(`Unknownphysicaltexturetype${e}`)}}function qpe(e){return ae().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?Tn.PACKED_2X2_FLOAT32:Tn.UNPACKED_FLOAT32:e?Tn.PACKED_2X2_FLOAT16:Tn.UNPACKED_FLOAT16}function gE(e,t){if(e===zr.UPLOAD)return Tn.PACKED_2X2_FLOAT32;if(e===zr.RENDER||e==null)return qpe(t);if(e===zr.DOWNLOAD||e===zr.PIXELS)return Tn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknownlogicaltexturetype${e}`)}function yE(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var Qa=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=`
`}},afe=ca.whereImpl,ofe=1e-7,ife=1e-4,Um={};function lfe(e){return e in Um||(Um[e]={}),Um[e]}var ufe=ae().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),cfe=600;function dfe(){return ae().global.screen==null?1024:ae().global.screen.height*ae().global.screen.width*window.devicePixelRatio*cfe/1024/1024}var xE=class extends Bp{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!ae().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=Ls(ae().getNumber("WEBGL_VERSION"));this.binaryCache=lfe(ae().getNumber("WEBGL_VERSION")),this.gpgpu=new Bm(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new Hpe(this.gpgpu),this.numMBBeforeWarning=dfe(),this.texData=new fy(this,za())}nextDataId(){return xE.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(e,t,n){if((ae().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ae().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let r={id:this.nextDataId()};return this.texData.set(r,{shape:t,dtype:n,values:e,usage:zr.UPLOAD,refCount:1}),r}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,r,s){if(ae().getBool("DEBUG")&&this.checkNumericalProblems(t),r==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:r,values:t,usage:zr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:r,complexTensorInfos:s,slice:a,shape:o,isPacked:i}=t;if(a!=null){let d;i?d=new wu(o,Vm):d=new Qa(o,Vm);let h=this.runWebGLProgram(d,[{dataId:e,shape:o,dtype:r}],r),p=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),p}if(n!=null)return this.convertAndCacheOnCPU(e);if(r==="string")return n;let l=this.activeTimers!=null,u;l&&(u=k.now());let c;if(r==="complex64"){let d=this.readSync(s.real.dataId),h=this.readSync(s.imag.dataId);c=_.mergeRealAndImagArrays(d,h)}else c=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=k.now()-u),this.convertAndCacheOnCPU(e,c)}async read(e){if(this.pendingRead.has(e)){let p=this.pendingRead.get(e);return new Promise(f=>p.push(f))}let t=this.texData.get(e),{values:n,shape:r,slice:s,dtype:a,complexTensorInfos:o,isPacked:i}=t;if(s!=null){let p;i?p=new wu(r,Vm):p=new Qa(r,Vm);let f=this.runWebGLProgram(p,[{dataId:e,shape:r,dtype:a}],a),m=this.read(f.dataId);return this.disposeIntermediateTensorInfo(f),m}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ae().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ae().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(a!=="complex64"&&ae().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let p=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(p.texture,...oh(r))}this.pendingRead.set(e,[]),a!=="complex64"&&await this.gpgpu.createAndWaitForFence();let c;if(a==="complex64"){let p=await Promise.all([this.read(o.real.dataId),this.read(o.imag.dataId)]),f=p[0],m=p[1];c=_.mergeRealAndImagArrays(f,m)}else if(l==null)c=this.getValuesFromTexture(e);else{let p=k.sizeFromShape(r);c=this.gpgpu.downloadFloat32MatrixFromBuffer(l,p)}u!=null&&this.disposeIntermediateTensorInfo(u);let d=this.convertAndCacheOnCPU(e,c),h=this.pendingRead.get(e);return this.pendingRead.delete(e),h.forEach(p=>p(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&za().removeDataId(e,this),this.pendingDeletes
`;function yfe(e){let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{alpha:a}=r,o=n.makeTensorInfo([],"float32",k.createScalarValue(a,"float32")),i=ae().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new hh(kE,s.shape,o.shape):new ku(wE,s.shape,o.shape),l=n.runWebGLProgram(i,[s,o],s.dtype);return n.disposeIntermediateTensorInfo(o),l}var Afe={kernelName:pl,backendName:"webgl",kernelFunc:yfe},IE="return (a < 0.) ? b * a : a;",SE=`
return(log(1.0+x)-log(1.0-x))/2.0;`,xme=it({opSnippet:Ame}),bme={kernelName:Nc,backendName:"webgl",kernelFunc:xme},ph=class{constructor(e,t,n,r=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideHeight,i=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=e.padInfo.top,p=e.padInfo.left;this.outputShape=e.outShape;let f=t==="avg",m=`((batch*${e.inHeight}+xR)*${e.inWidth}+xC)*${e.inChannels}+d`,g=`(xR*${e.inWidth}+xC)*${e.inChannels}+d`,y="0.0";if(f||(y="-1.0 / 1e-20"),n){let I=">=";this.userCode=`
`}},lb=class{constructor(e,t,n,r=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideDepth,i=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,d=e.dilationWidth,h=e.effectiveFilterDepth,p=e.effectiveFilterHeight,f=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let A=t==="avg",x="0.0";if(A||(x="-1.0 / 1e-20"),n){let C=">=";this.userCode=`
`}},Mme=({inputs:e,backend:t,attrs:n})=>{let{x:r,mean:s,variance:a,offset:o,scale:i}=e;k.assert(s.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(o==null||s.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(i==null||s.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[r,s,a],c=null;o!=null&&(c=o.shape,u.push(o));let d=null;i!=null&&(d=i.shape,u.push(i));let h=ae().getBool("WEBGL_PACK_NORMALIZATION")?new Fme(r.shape,s.shape,a.shape,c,d,l):new Dme(r.shape,s.shape,a.shape,c,d,l);return t.runWebGLProgram(h,u,u[0].dtype)},Ome={kernelName:cl,backendName:"webgl",kernelFunc:Mme},Pme=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=It(this.rank),n=`uniformintstart[${this.rank}];`,r=zme(this.rank),s,a=e.map((o,i)=>`sourceLoc.${ub[i]}=start[${i}]+coords.${ub[i]};`);s=`
`}};function UE({x:e,filter:t,convInfo:n,backend:r,bias:s=null,preluActivationWeights:a=null,leakyreluAlpha:o=0,activation:i=null}){let l=e.shape,u=r.texData.get(e.dataId),c=n.inChannels,d=l[0]*l[1]*l[2],h=n.outChannels,p=n.dataFormat==="channelsLast",f=!1,m=!1,g,y=[],A=(d===1||h===1)&&c>RE,x=l[2]%2!=0&&!!u.isPacked;if(A||!ae().getBool("WEBGL_LAZILY_UNPACK")||!ae().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!x){let b=p?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],v=ve({inputs:{x:e},backend:r,attrs:{shape:[1,b,n.inChannels]}}),w=ve({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Km({a:v,b:w,transposeA:f,transposeB:m,backend:r,bias:s,activation:i,preluActivationWeights:a,leakyreluAlpha:o});g=ve({inputs:{x:I},backend:r,attrs:{shape:n.outShape}}),y.push(v),y.push(w),y.push(I)}else{let b=p?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),v={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,k.assert(uh(u.shape,v.shape),()=>`packedreshape${u.shape}to${v.shape}isn'tfree`);let I=ve({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=Km({a:v,b:I,backend:r,transposeA:f,transposeB:m,bias:s,activation:i,preluActivationWeights:a,leakyreluAlpha:o}),C=r.texData.get(T.dataId);k.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=mr({inputs:{x:T},backend:r}),g.shape=n.outShape,y.push(T)}for(let b of y)r.disposeIntermediateTensorInfo(b);return g}function HE({x:e,filter:t,convInfo:n,backend:r,bias:s=null,preluActivationWeights:a=null,leakyreluAlpha:o=0,activation:i=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:d,outHeight:h,dataFormat:p}=n,f=p==="channelsLast",m=l*u*c,g=h*d,y=[m,g],A=!0,x=!1,b=[],v=ve({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=ve({inputs:{x:t},backend:r,attrs:{shape:[1,m,k.sizeFromShape(t.shape)/m]}});b.push(v),b.push(w);let I=new p0e(y,v.shape,n),T=r.runWebGLProgram(I,[v],"float32"),C=ve({inputs:{x:T},backend:r,attrs:{shape:[1,y[0],y[1]]}});b.push(T),b.push(C);let M=s!=null,$=a!=null,R=i==="leakyrelu",N=i?Gm(i,!0):null,F=new NE(C.shape,w.shape,[1,g,n.outChannels],A,x,M,N,$,R),B=[C,w];if(s&&B.push(s),$&&B.push(a),R){let ee=r.makeTensorInfo([],"float32",k.createScalarValue(o,"float32"));B.push(ee),b.push(ee)}let j=r.runWebGLProgram(F,B,"float32"),X=f?[1,h,d,n.outChannels]:[1,n.outChannels,h,d],Y=ve({inputs:{x:j},backend:r,attrs:{shape:X}});b.push(j);for(let ee of b)r.disposeIntermediateTensorInfo(ee);return Y}function f0e(e){let{inputs:t,backend:n,attrs:r}=e,{x:s,filter:a}=t,{strides:o,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=r,d=_.convertConv2DDataFormat(l),h=_.computeConv2DInfo(s.shape,a.shape,o,u,i,c,!1,d),p;if(h.filterHeight===1&&h.filterWidth===1&&h.dilationHeight===1&&h.dilationWidth===1&&h.strideHeight===1&&h.strideWidth===1&&(h.padInfo.type==="SAME"||h.padInfo.type==="VALID"))p=UE({x:s,filter:a,convInfo:h,backend:n});else if(ae().getBool("WEBGL_CONV_IM2COL")&&s.shape[0]===1)p=HE({x:s,filter:a,convInfo:h,backend:n});else{let m=new VE(h);p=n.runWebGLProgram(m,[s,a],"float32")}let f=ve({inputs:{x:p},backend:n,attrs:{shape:h.outShape}});return n.disposeIntermediateTensorInfo(p),f}var m0e={kernelName:tl,backendName:"webgl",kernelFunc:f0e},g0e=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,s=e.padInfo.left,a=e.dataFormat==="channelsLast";this.userCode=`
`}},eAe=e=>{let{inputs:t,backend:n,attrs:r}=e,{indices:s}=t,{depth:a,onValue:o,offValue:i}=r,l=k.sizeFromShape(s.shape),u=new Qye(l,a,o,i),c=ve({inputs:{x:s},backend:n,attrs:{shape:[l]}}),d=n.runWebGLProgram(u,[c],s.dtype);n.disposeIntermediateTensorInfo(c);let h=[...s.shape,a],p=ve({inputs:{x:d},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(d),p},tAe={kernelName:wl,backendName:"webgl",kernelFunc:eAe};function Jm(e){let{inputs:t,backend:n}=e,{x:r}=t;if(r.dtype==="complex64"){let s=mh({inputs:{input:r},backend:n}),a=Jm({inputs:{x:s},backend:n}),o=Ym({inputs:{input:r},backend:n}),i=Jm({inputs:{x:o},backend:n}),l=eo({inputs:{real:a,imag:i},backend:n});return n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(i),l}else return hb({attrs:{shape:r.shape,dtype:r.dtype,value:r.dtype==="string"?"":0},backend:n})}var nAe={kernelName:hd,backendName:"webgl",kernelFunc:Jm};function l9(e){let{inputs:t,backend:n}=e,{x:r}=t;if(r.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(r.dtype==="complex64"){let s=mh({inputs:{input:r},backend:n}),a=l9({inputs:{x:s},backend:n}),o=Ym({inputs:{input:r},backend:n}),i=Jm({inputs:{x:o},backend:n}),l=eo({inputs:{real:a,imag:i},backend:n});return n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(i),l}else return hb({attrs:{shape:r.shape,dtype:r.dtype,value:1},backend:n})}var rAe={kernelName:Xc,backendName:"webgl",kernelFunc:l9};function sAe(e){let{inputs:t,backend:n,attrs:r}=e,{axis:s}=r;if(t.length===1)return db({inputs:{input:t[0]},backend:n,attrs:{dim:s}});let a=t[0].shape,o=t[0].dtype;t.forEach(c=>{k.assertShapesMatch(a,c.shape,"All tensors passed to stack must have matching shapes"),k.assert(o===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=t.map(c=>{let d=db({inputs:{input:c},backend:n,attrs:{dim:s}});return i.push(d),d}),u=WE({inputs:l,backend:n,attrs:{axis:s}});return i.forEach(c=>n.disposeIntermediateTensorInfo(c)),u}var aAe={kernelName:Zc,backendName:"webgl",kernelFunc:sAe},oAe=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let r=e.length,s=It(r),a=t.map(l=>l[0]).join(","),o=t.map((l,u)=>l[0]+e[u]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);if(r===1){this.userCode=`
`}},VAe=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGLbackend:Reverseofrank-${n}tensorisnotyetsupported`);this.outputShape=e;let r=Vn("rc",n),s=`${r[n-1]}+1<${this.outputShape[n-1]}`,a=`${r[n-2]}+1<${this.outputShape[n-2]}`,o=It(n);n===1?this.userCode=`
`,b1e=it({opSnippet:x1e}),v1e={kernelName:od,backendName:"webgl",kernelFunc:b1e},w1e=e=>{let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{blockShape:a,paddings:o}=r;k.assert(s.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let i=a.reduce((y,A)=>y*A),l=[[0,0]];l.push(...o);for(let y=1+a.length;y<s.shape.length;++y)l.push([0,0]);let u=[],c=u9({inputs:{x:s},backend:n,attrs:{paddings:l,constantValue:0}}),d=_.getReshaped(c.shape,a,i,!1),h=_.getPermuted(d.length,a.length,!1),p=_.getReshapedPermuted(c.shape,a,i,!1),f=ve({inputs:{x:c},backend:n,attrs:{shape:d}}),m=Un({inputs:{x:f},backend:n,attrs:{perm:h}}),g=ve({inputs:{x:m},backend:n,attrs:{shape:p}});return u.push(c),u.push(f),u.push(m),u.forEach(y=>n.disposeIntermediateTensorInfo(y)),g},k1e={kernelName:of,backendName:"webgl",kernelFunc:w1e};function I1e(e){let{inputs:t,backend:n}=e,{indices:r,values:s,denseShape:a,defaultValue:o}=t;if(a.shape.length!==1)throw new Error(`Denseshapemustbeavector,saw:
${a.shape}`);if(r.shape.length!==2)throw new Error(`Indicesmustbeamatrix,saw:
${r.shape}`);if(s.shape.length!==1)throw new Error(`Valuesmustbeavector,saw:
${s.shape}`);if(o.shape.length!==0)throw new Error(`Defaultvaluemustbeascalar,saw:
${o.shape}`);let i=n.readSync(r.dataId),l=n.readSync(s.dataId),u=n.readSync(a.dataId),c=n.readSync(o.dataId)[0],[d,h,p,f,m]=Npe(i,r.shape,r.dtype,l,s.dtype,u,c);return[n.makeTensorInfo(h,r.dtype,d),n.makeTensorInfo([h[0]],s.dtype,p),n.makeTensorInfo([f.length],"bool",new Uint8Array(f.map(g=>Number(g)))),n.makeTensorInfo([m.length],r.dtype,new Int32Array(m))]}var S1e={kernelName:Ky,backendName:"webgl",kernelFunc:I1e};function T1e(e){let{inputs:t,backend:n}=e,{inputIndices:r,inputShape:s,newShape:a}=t;if(r.shape.length!==2)throw new Error(`Inputindicesshouldbeamatrixbutreceivedshape${r.shape}`);if(s.shape.length!==1)throw new Error(`Inputshapeshouldbeavectorbutreceivedshape${s.shape}`);if(a.shape.length!==1)throw new Error(`Targetshapeshouldbeavectorbutreceivedshape${a.shape}`);let o=Array.from(n.readSync(s.dataId)),i=n.readSync(r.dataId),l=Array.from(n.readSync(a.dataId)),[u,c,d]=Cpe(i,r.shape,r.dtype,o,l);return[n.makeTensorInfo(c,r.dtype,u),n.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}var N1e={kernelName:Xy,backendName:"webgl",kernelFunc:T1e};function C1e(e){let{inputs:t,backend:n}=e,{data:r,indices:s,segmentIds:a}=t;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${s.shape}`);if(a.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${a.shape}`);let o=n.readSync(r.dataId),i=n.readSync(s.dataId),l=n.readSync(a.dataId),[u,c]=hE(o,r.shape,r.dtype,i,l,!0);return n.makeTensorInfo(c,r.dtype,u)}var E1e={kernelName:Zy,backendName:"webgl",kernelFunc:C1e};function $1e(e){let{inputs:t,backend:n}=e,{data:r,indices:s,segmentIds:a}=t;if(r.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(s.shape.length!==1)throw new Error(`Indicesshouldbeavectorbutreceivedshape
${s.shape}`);if(a.shape.length!==1)throw new Error(`Segmentidsshouldbeavectorbutreceivedshape
${a.shape}`);let o=n.readSync(r.dataId),i=n.readSync(s.dataId),l=n.readSync(a.dataId),[u,c]=hE(o,r.shape,r.dtype,i,l);return n.makeTensorInfo(c,r.dtype,u)}var _1e={kernelName:Yy,backendName:"webgl",kernelFunc:$1e};function R1e(e){let{inputs:t,backend:n,attrs:r}=e,{sparseIndices:s,sparseValues:a,defaultValue:o}=t,{outputShape:i}=r,{sliceRank:l,numUpdates:u,strides:c,outputSize:d}=_.calculateShapes(a,s,i),h=!1,p=new d9(u,l,s.shape.length,a.shape.length,c,[d,1],h),f=n.runWebGLProgram(p,[a,s,o],a.dtype),m=ve({inputs:{x:f},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(f),m}var D1e={kernelName:Jy,backendName:"webgl",kernelFunc:R1e};function F1e(e){let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{numOrSizeSplits:a,axis:o}=r,i=k.parseAxisParam(o,s.shape)[0],l=_.prepareSplitSize(s,a,i),u=s.shape.length,c=new Array(u).fill(0),d=s.shape.slice();return l.map(h=>{let p=[...d];p[i]=h;let f=fh({inputs:{x:s},backend:n,attrs:{begin:c,size:p}});return c[i]+=h,f})}var M1e={kernelName:id,backendName:"webgl",kernelFunc:F1e},O1e="return sqrt(x);",P1e=it({opSnippet:O1e}),z1e={kernelName:Dl,backendName:"webgl",kernelFunc:P1e},L1e="return x * x;",B1e=it({opSnippet:L1e}),W1e={kernelName:lf,backendName:"webgl",kernelFunc:B1e},h9="return (a - b) * (a - b);",V1e=Nn({opSnippet:h9,packedOpSnippet:h9}),U1e={kernelName:Po,backendName:"webgl",kernelFunc:V1e};function H1e({inputs:e,attrs:t,backend:n}){let{x:r}=e,s=ys+`
`}};function q1e(e){let{inputs:t,backend:n,attrs:r}=e,{x:s}=t,{begin:a,end:o,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:d,shrinkAxisMask:h}=r,{nonStrided:p,$begin:f,$strides:m,size:g,newShape:y,outShape:A}=En.sliceInfo(s.shape,a,o,i,l,u,c,d,h),x=ve({inputs:{x:s},backend:n,attrs:{shape:y}}),b;if(p){let w=fh({inputs:{x},backend:n,attrs:{begin:f,size:g}});b=ve({inputs:{x:w},backend:n,attrs:{shape:A}}),n.disposeIntermediateTensorInfo(w)}else if(A.some(w=>w===0))b=n.makeTensorInfo(A,s.dtype,[]);else if(n.shouldExecuteOnCPU([x])){let T=n.texData.get(x.dataId).values,C=Le(x.shape,x.dtype,T),M=Epe(A,C,m,f);b=n.makeTensorInfo(A,x.dtype,M.values)}else{let I=new j1e(f,m,A);b=n.runWebGLProgram(I,[x],x.dtype)}let v=ve({inputs:{x:b},backend:n,attrs:{shape:A}});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(b),v}var K1e={kernelName:ld,backendName:"webgl",kernelFunc:q1e};function X1e(e){let{inputs:t,backend:n,attrs:r}=e,{separator:s,nGramWidths:a,leftPad:o,rightPad:i,padWidth:l,preserveShortSequences:u}=r,{data:c,dataSplits:d}=t,h=n.readSync(c.dataId),p=n.readSync(d.dataId),[f,m]=$pe(h,p,s,a,o,i,l,u);return[n.makeTensorInfo([f.length],"string",f),n.makeTensorInfo(d.shape,"int32",m)]}var Z1e={kernelName:Qy,backendName:"webgl",kernelFunc:X1e};function Y1e(e){let{inputs:t,backend:n,attrs:r}=e,{skipEmpty:s}=r,{input:a,delimiter:o}=t;if(a.dtype!=="string")throw new Error("Input must be of datatype string");if(a.shape.length!==1)throw new Error(`Inputmustbeavector,gotshape:${a.shape}`);if(o.shape.length!==0)throw new Error(`Delimitermustbeascalar,gotshape:${o.shape}`);let i=n.readSync(a.dataId),l=n.readSync(o.dataId)[0],[u,c,d]=_pe(i,l,s),h=c.length;return[n.makeTensorInfo([h,2],"int32",u),n.makeTensorInfo([h],"string",c),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var J1e={kernelName:eA,backendName:"webgl",kernelFunc:Y1e};function Q1e(e){let{inputs:t,backend:n,attrs:r}=e,{numBuckets:s}=r,{input:a}=t;if(a.dtype!=="string")throw new Error("Input must be of datatype string");if(s<=0)throw new Error("Number of buckets must be at least 1");let o=n.readSync(a.dataId),i=Rpe(o,s);return n.makeTensorInfo(a.shape,"int32",i)}var exe={kernelName:tA,backendName:"webgl",kernelFunc:Q1e},txe="return tan(x);",nxe=it({opSnippet:txe}),rxe={kernelName:Ol,backendName:"webgl",kernelFunc:nxe},sxe=`