From 68f7113925093a6f72b72de2de42460b4fd5bb50 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 6 Oct 2021 11:33:58 -0400 Subject: [PATCH] release 2.3.1 --- CHANGELOG.md | 6 +- dist/human.esm-nobundle.js | 2 +- dist/human.esm.js | 2 +- dist/human.js | 2 +- dist/human.node-gpu.js | 2 +- dist/human.node-wasm.js | 2 +- dist/human.node.js | 2 +- test/build.log | 48 +- test/test.log | 1204 ++++++++--------- typedoc/classes/Human.html | 2 +- typedoc/classes/Models.html | 2 +- typedoc/index.html | 2 +- typedoc/interfaces/BodyConfig.html | 2 +- typedoc/interfaces/BodyResult.html | 2 +- typedoc/interfaces/Config.html | 2 +- typedoc/interfaces/DrawOptions.html | 2 +- typedoc/interfaces/FaceConfig.html | 2 +- typedoc/interfaces/FaceDescriptionConfig.html | 2 +- typedoc/interfaces/FaceDetectorConfig.html | 2 +- typedoc/interfaces/FaceEmotionConfig.html | 2 +- typedoc/interfaces/FaceIrisConfig.html | 2 +- typedoc/interfaces/FaceMeshConfig.html | 2 +- typedoc/interfaces/FaceResult.html | 2 +- typedoc/interfaces/FilterConfig.html | 2 +- typedoc/interfaces/GestureConfig.html | 2 +- typedoc/interfaces/HandConfig.html | 2 +- typedoc/interfaces/HandResult.html | 2 +- typedoc/interfaces/ObjectConfig.html | 2 +- typedoc/interfaces/ObjectResult.html | 2 +- typedoc/interfaces/PersonResult.html | 2 +- typedoc/interfaces/Result.html | 2 +- typedoc/interfaces/SegmentationConfig.html | 2 +- 32 files changed, 660 insertions(+), 656 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a4e2d50..0d0ef3ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,12 @@ ## Changelog -### **HEAD -> main** 2021/10/04 mandic00@live.com +### **2.3.1** 2021/10/06 mandic00@live.com + +### **origin/main** 2021/10/06 mandic00@live.com + +- fix backend conflict in webworker - add blazepose v2 and add annotations to body results - fix backend order initialization - added docker notes diff --git a/dist/human.esm-nobundle.js b/dist/human.esm-nobundle.js index 4c613ff0..7fe46949 100644 --- a/dist/human.esm-nobundle.js +++ b/dist/human.esm-nobundle.js @@ -236,7 +236,7 @@ var version9 = { }; // package.json -var version10 = "2.3.0"; +var version10 = "2.3.1"; // src/image/imagefx.ts function GLProgram(gl, vertexSource, fragmentSource) { diff --git a/dist/human.esm.js b/dist/human.esm.js index d7080acc..b0dffa06 100644 --- a/dist/human.esm.js +++ b/dist/human.esm.js @@ -60304,7 +60304,7 @@ var version92 = { }; // package.json -var version6 = "2.3.0"; +var version6 = "2.3.1"; // src/image/imagefx.ts function GLProgram(gl, vertexSource, fragmentSource) { diff --git a/dist/human.js b/dist/human.js index 2328901d..181d1307 100644 --- a/dist/human.js +++ b/dist/human.js @@ -4610,7 +4610,7 @@ return a / b;`,$te=` } setOutput(${l}); } - `}};function Are(e){let{inputs:t,backend:n,attrs:s}=e,{x:r,segmentIds:a}=t,{numSegments:o}=s,i=r.shape.length,l=[],u=0,c=_.getAxesPermutation([u],i),d=r;c!=null&&(d=Fn({inputs:{x:r},backend:n,attrs:{perm:c}}),l.push(d),u=_.getInnerMostAxes(1,i)[0]);let p=_.segment_util.computeOutShape(d.shape,u,o),h=w.sizeFromShape([d.shape[u]]),m=be({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=yh(r.dtype),g=(b,v,k,S,C)=>{let D=b.shape[0],O=b.shape[1],E=_.segment_util.segOpComputeOptimalWindowSize(O,C),R={windowSize:E,inSize:O,batchSize:D,numSegments:C},T=new gre(R,v),P=n.compileAndRun(T,[b,k],S);if(l.push(P),P.shape[1]===C)return P;let U=yk({backend:n,attrs:{start:0,stop:C,step:1,dtype:"float32"}}),j=kk({inputs:{x:U},backend:n,attrs:{reps:[O/E]}});return l.push(U),l.push(j),g(P,v,j,S,C)},A=g(m,"unsortedSegmentSum",a,f,o),y=be({inputs:{x:A},backend:n,attrs:{shape:p}}),x=y;if(c!=null){l.push(y);let b=_.getUndoAxesPermutation(c);x=Fn({inputs:{x},backend:n,attrs:{perm:b}})}return l.forEach(b=>n.disposeIntermediateTensorInfo(b)),x}var yre={kernelName:Sc,backendName:"webgl",kernelFunc:Are},xre=[qee,Zee,$Z,OZ,zZ,WZ,UZ,jZ,XZ,ZZ,eY,nY,aY,lY,mY,dY,yY,wY,bY,CY,NY,RY,FY,WY,UY,KY,YY,tJ,rJ,fZ,uJ,xJ,vJ,hJ,SJ,TJ,kJ,RJ,$J,PJ,zJ,BJ,UJ,KJ,YJ,GJ,eQ,sQ,aQ,uQ,hQ,AQ,bQ,vQ,wQ,IQ,CQ,NQ,RQ,_Q,PQ,LQ,VQ,HQ,qQ,ZQ,eee,ree,hZ,oee,iJ,uee,pee,mee,gZ,xee,kee,See,_ee,Eee,Pee,Lee,Uee,Jee,ote,rte,cte,pte,fte,nte,gte,yte,wte,Cte,Rte,zte,vZ,Bte,Ute,jte,Kte,GY,Jte,ene,nne,ane,une,yZ,dne,pne,jY,Fte,mne,kne,xne,kZ,Tne,Rne,Fne,Mne,Wne,Une,jne,Kne,Yne,ese,sse,ase,lse,dse,fse,LY,Pte,Ase,xse,vse,kse,Sse,Tse,Ese,Dse,$se,Pse,zse,Bse,Use,Gse,qse,Kse,Ote,RZ,Jse,tre,rre,lre,dre,DZ,hre,mre,yre,Qte];for(let e of xre)ua(e);var qn;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(qn||(qn={}));var Md;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(Md||(Md={}));var Sk;function bre(e){Sk=e.wasm.cwrap(Uo,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function vre(e){let{inputs:t,backend:n,attrs:s}=e,{a:r,b:a,bias:o,preluActivationWeights:i}=t;if(r.dtype!=="float32"||a.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:d}=s,p=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(a.dataId).id,m=0;if(o!=null){let C=n.dataIdMap.get(o.dataId);if(C.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${C.shape.length}.`);m=C.id}let f=i==null?0:n.dataIdMap.get(i.dataId).id,g=Md[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let A=l?r.shape[2]:r.shape[1],y=u?a.shape[1]:a.shape[2],x=r.shape[0],b=n.makeOutput([x,A,y],r.dtype),v=n.dataIdMap.get(b.dataId).id,k=new Uint8Array(new Int32Array(r.shape).buffer),S=new Uint8Array(new Int32Array(a.shape).buffer);return Sk(p,k,r.shape.length,h,S,a.shape.length,l,u,g,m,f,d||0,v),b}var wre={kernelName:Uo,backendName:"wasm",setupFunc:bre,kernelFunc:vre};function vn(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function s(r){let{backend:a,inputs:{x:o}}=r,i=a.dataIdMap.get(o.dataId).id,l=a.makeOutput(o.shape,o.dtype),u=a.dataIdMap.get(l.dataId).id;return w.sizeFromShape(l.shape)===0||t(i,u),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:s}}var kre=vn(qi);function On(e,t,n){let s;function r(o){s=o.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function a(o){let{backend:i,inputs:l}=o,{a:u,b:c}=l,d=i.dataIdMap.get(u.dataId).id,p=i.dataIdMap.get(c.dataId).id,h=n!=null?n:u.dtype,m=_.assertAndGetBroadcastShape(u.shape,c.shape),f=i.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),A=new Uint8Array(new Int32Array(c.shape).buffer),y=i.dataIdMap.get(f.dataId).id,x=()=>s(d,g,u.shape.length,p,A,c.shape.length,qn[u.dtype],y);if(t&&u.dtype==="float32")return x(),f;let b=_.getBroadcastDims(u.shape,m),v=_.getBroadcastDims(c.shape,m),k=b.every((C,D)=>C===D),S=v.every((C,D)=>C===D);if(k&&S)return x(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:a}}var Ire=!0,Sre=On(aa,Ire),Ck;function Cre(e){Ck=e.wasm.cwrap(ja,null,["array","number","number","number"])}function Tre(e){let{inputs:t,backend:n}=e,s=n.makeOutput(t[0].shape,t[0].dtype);if(w.sizeFromShape(s.shape)===0)return s;let r=t.map(i=>n.dataIdMap.get(i.dataId).id),a=new Uint8Array(new Int32Array(r).buffer),o=n.dataIdMap.get(s.dataId).id;return Ck(a,r.length,qn[s.dtype],o),s}var Nre={kernelName:ja,backendName:"wasm",setupFunc:Cre,kernelFunc:Tre};function w0(e){let{inputs:{x:t},backend:n}=e,s=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(s).set(r),s}var Ere={kernelName:po,backendName:"wasm",kernelFunc:w0},Tk;function Rre(e){Tk=e.wasm.cwrap(Vo,null,["number","array","number","number","number","array","number"])}function Lu(e){let{inputs:t,backend:n,attrs:s}=e,[r,a]=_re(t.x.shape,s.perm),o=!0;for(let m=0;m=r&&(a===-1||s[a]>s[o])&&(a=o);s[a]=r}return[n,s]}var $re={kernelName:Vo,backendName:"wasm",kernelFunc:Lu,setupFunc:Rre};function Da(e,t,n){let s=e.shape,r=e.shape.length,a=w.parseAxisParam(t,s),o=a,i=_.getAxesPermutation(o,r),l=null,u=!1;if(i!=null){let c=new Array(r);for(let h=0;h`new shape: ${o}, old shape: ${s.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(s.dataId),{dataId:s.dataId,shape:o,dtype:s.dtype}}var jre={kernelName:_l,backendName:"wasm",kernelFunc:Xn},_k;function qre(e){_k=e.wasm.cwrap(Ka,null,["number","array","number","number","array","number","number","number","number"])}function Xre(e){let{inputs:t,backend:n,attrs:s}=e,{a:r,b:a}=t,{transposeA:o,transposeB:i}=s;if(r.dtype!=="float32"||a.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=a.shape.length,c=o?r.shape[l-2]:r.shape[l-1],d=i?a.shape[u-1]:a.shape[u-2],p=o?r.shape[l-1]:r.shape[l-2],h=i?a.shape[u-2]:a.shape[u-1],m=r.shape.slice(0,-2),f=a.shape.slice(0,-2),g=w.sizeFromShape(m),A=w.sizeFromShape(f),y=g===A||g===1||A===1;w.assert(l>=2&&u>=2&&y,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let b=(g>A?r.shape.slice(0,-2):a.shape.slice(0,-2)).concat([p,h]);w.assert(c===d,()=>`Error in matMul: inner shapes (${c}) and (${d}) of Tensors with shapes ${r.shape} and ${a.shape} and transposeA=${o} and transposeB=${i} must match.`);let v=o?[g,c,p]:[g,p,c],k=i?[A,h,d]:[A,d,h],S=Xn({inputs:{x:r},backend:n,attrs:{shape:v}}),C=Xn({inputs:{x:a},backend:n,attrs:{shape:k}}),D=n.dataIdMap.get(S.dataId).id,O=n.dataIdMap.get(C.dataId).id,E=o?S.shape[2]:S.shape[1],R=i?C.shape[1]:C.shape[2],T=Math.max(g,A),P=n.makeOutput([T,E,R],S.dtype),U=n.dataIdMap.get(P.dataId).id,j=new Uint8Array(new Int32Array(S.shape).buffer),q=new Uint8Array(new Int32Array(C.shape).buffer);return _k(D,j,S.shape.length,O,q,C.shape.length,o,i,U),n.disposeData(S.dataId),n.disposeData(C.dataId),P.shape=b,P}var Kre={kernelName:Ka,backendName:"wasm",setupFunc:qre,kernelFunc:Xre};function zd(e){let{inputs:{x:t},attrs:{begin:n,size:s},backend:r}=e,[a,o]=Nn.parseSliceParams(t,n,s),i=Nn.isSliceContinous(t.shape,a,o),l=r.readSync(t.dataId),u=r.makeOutput(o,t.dtype),c=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(i){let m=Nn.computeFlatOffset(a,c);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(o)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(o))),u}if(t.dtype==="string"){let m=Jf(l,a,o,t.shape,t.dtype);return d.stringBytes=m,u}let p=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Zre(l,c[0],p,a,o);else if(h===3)Yre(l,c[0],c[1],p,a,o);else if(h===4)Jre(l,c[0],c[1],c[2],p,a,o);else{let m=Jf(l,a,o,t.shape,t.dtype);p.set(m)}return u}function Zre(e,t,n,s,r){let a=0,o=s[0],i=s[1],l=o+r[0];for(let u=o;uA*y),l=_.getReshaped(r.shape,a,i),u=_.getPermuted(l.length,a.length),c=_.getReshapedPermuted(r.shape,a,i),d=_.getSliceBeginCoords(o,a.length),p=_.getSliceSize(c,o,a.length),h=Xn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Lu({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Xn({inputs:{x:m},backend:n,attrs:{shape:c}}),g=zd({inputs:{x:f},backend:n,attrs:{begin:d,size:p}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var tae={kernelName:sl,backendName:"wasm",kernelFunc:eae};function k0(e){let{inputs:{x:t},attrs:{dtype:n},backend:s}=e,r=s.makeOutput(t.shape,n),a=s.typedArrayFromHeap(t);return s.typedArrayFromHeap(r).set(a),r}var nae={kernelName:Za,backendName:"wasm",kernelFunc:k0},sae=vn(Ya),$k;function rae(e){$k=e.wasm.cwrap(oa,null,["number","number","number","number"])}function aae(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{clipValueMin:a,clipValueMax:o}=s,i=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return $k(i,a,o,u),l}var oae={kernelName:oa,backendName:"wasm",setupFunc:rae,kernelFunc:aae};function Fk(e){let{inputs:t,backend:n}=e,s=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),s),a=t.filter(h=>w.sizeFromShape(h.shape)>0);if(a.length===1)return w0({inputs:{x:a[0]},backend:n});let o=n.makeOutput(r,t[0].dtype);if(w.sizeFromShape(r)===0)return o;let i=a.map(h=>h.shape);if(_.assertParamsConsistent(i,s),a[0].dtype==="string"){let h=a.map(x=>{let b=w.sizeFromShape(x.shape.slice(s));return Xn({inputs:{x},backend:n,attrs:{shape:[-1,b]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=_.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=u2(m,r,t[0].dtype,f),A=_.computeOutShape(a.map(x=>x.shape),s);o.shape=A;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=_.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(a[0].shape.slice(0,s)),u=0,c=a.map(h=>{let m=w.sizeFromShape(h.shape.slice(s));return u+=m,m}),d=a.map(h=>n.typedArrayFromHeap(h)),p=n.typedArrayFromHeap(o);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=_.getAxesPermutation([a],l),c=r;u!==null&&(c=Lu({inputs:{x:r},attrs:{perm:u},backend:n}));let d=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[d],l);let p=n.makeOutput(c.shape,c.dtype),h=c.shape[d],m=n.dataIdMap.get(c.dataId).id,f=n.dataIdMap.get(p.dataId).id;zk(m,o?1:0,i?1:0,h,f,qn[r.dtype]);let g=p;if(u!==null){let A=_.getUndoAxesPermutation(u);g=Lu({inputs:{x:p},attrs:{perm:A},backend:n}),n.disposeData(c.dataId),n.disposeData(p.dataId)}return g}var vae={kernelName:no,backendName:"wasm",setupFunc:xae,kernelFunc:bae},Lk;function wae(e){Lk=e.wasm.cwrap(ol,null,["number","number","number","array","number","array","array","number","number"])}function kae(e){let{backend:t,inputs:n,attrs:s}=e,{x:r}=n,{blockSize:a,dataFormat:o}=s;w.assert(a>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${a}`);let i=r.shape[0],l=o==="NHWC"?r.shape[1]:r.shape[2],u=o==="NHWC"?r.shape[2]:r.shape[3],c=o==="NHWC"?r.shape[3]:r.shape[1],d=l*a,p=u*a,h=c/(a*a),m=o==="NHWC"?[i,d,p,h]:[i,h,d,p],f=t.makeOutput(m,"float32"),A=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),x=new Uint8Array(new Int32Array(m).buffer),b=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return Lk(A,a,o==="NHWC"?1:0,y,r.shape.length-1,x,b,m.length,v),f}var Iae={kernelName:ol,backendName:"wasm",setupFunc:wae,kernelFunc:kae},Bk;function Sae(e){Bk=e.wasm.cwrap(so,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cae(e){let{inputs:t,attrs:n,backend:s}=e,{x:r,filter:a}=t,o=s.dataIdMap.get(r.dataId).id,i=s.dataIdMap.get(a.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:d}=n,p=u==null?[1,1]:u,h=_.computeConv2DInfo(r.shape,a.shape,l,p,c,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,A=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,b=h.dilationHeight,v=h.dilationWidth,k=h.strideHeight,S=h.strideWidth,C=h.inChannels,D=h.outChannels,O=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let E=s.makeOutput(h.outShape,"float32"),R=s.dataIdMap.get(E.dataId).id;return Bk(o,r.shape[0],r.shape[1],r.shape[2],i,m,f,g,A,y,x,O,b,v,k,S,C,D,R),E}var Tae={kernelName:so,backendName:"wasm",setupFunc:Sae,kernelFunc:Cae},Nae=vn(ao),Eae=!1,Rae=On(ll,Eae,"bool"),Dae=vn(oo);function V2(e){let{inputs:t,attrs:n,backend:s}=e,{input:r}=t,{dim:a}=n,o=r.shape.length,i=r.shape.slice(),l=a;return a<0&&(w.assert(-(o+1)<=a,()=>`Axis must be in the interval [${-(o+1)}, ${o}]`),l=o+a+1),i.splice(l,0,1),Xn({inputs:{x:r},backend:s,attrs:{shape:i}})}var _ae={kernelName:ul,backendName:"wasm",kernelFunc:V2};function Wk(e){let{attrs:{shape:t,value:n,dtype:s},backend:r}=e,a=r.makeOutput(t,s);return r.typedArrayFromHeap(a).fill(n),a}var $ae={kernelName:Ac,backendName:"wasm",kernelFunc:Wk},Vk;function Fae(e){Vk=e.wasm.cwrap(dl,null,["number","number","number","number","number","number"])}function Oae(e){let{inputs:t,backend:n}=e,{image:s}=t,r=n.makeOutput(s.shape,s.dtype),a=n.dataIdMap.get(s.dataId).id,o=n.dataIdMap.get(r.dataId).id,[i,l,u,c]=s.shape;return Vk(a,i,l,u,c,o),r}var Pae={kernelName:dl,backendName:"wasm",kernelFunc:Oae,setupFunc:Fae},Mae=vn(io),zae=!1,Lae=On(lo,zae),Uk;function Bae(e){Uk=e.wasm.cwrap(uo,null,["number","number","number","number","number","number","number"])}function Wae(e){let{backend:t,inputs:n,attrs:s}=e,{varianceEpsilon:r}=s,{x:a,mean:o,variance:i,offset:l,scale:u}=n,c=t.dataIdMap.get(a.dataId).id,d=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(i.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(a.shape,a.dtype);if(w.sizeFromShape(a.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return Uk(c,d,p,h,m,r,g),f}var Vae={kernelName:uo,backendName:"wasm",setupFunc:Bae,kernelFunc:Wae},Hk;function Uae(e){Hk=e.wasm.cwrap(Ho,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Hae(e){let{inputs:t,attrs:n,backend:s}=e,{x:r,filter:a,bias:o,preluActivationWeights:i}=t,{strides:l,pad:u,dilations:c,dataFormat:d,dimRoundingMode:p,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,a.shape,l,c,u,p),g=Md[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let A=s.dataIdMap.get(r.dataId).id,y=s.dataIdMap.get(a.dataId).id,x=f.outChannels,b=0;if(o!=null){let Q=s.dataIdMap.get(o.dataId);if(Q.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${Q.shape.length}.`);if(Q.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${Q.shape}) does not match the number of output channels (${x})`);b=Q.id}let v=f.filterHeight,k=f.filterWidth,S=f.padInfo.top,C=f.padInfo.right,D=f.padInfo.bottom,O=f.padInfo.left,E=f.dilationHeight,R=f.dilationWidth,T=f.strideHeight,P=f.strideWidth,U=f.inChannels,j=f.padInfo.type==="SAME"?1:0,q=f.batchSize,X=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let ne=s.makeOutput(f.outShape,"float32"),se=s.dataIdMap.get(ne.dataId).id,ae=i==null?0:s.dataIdMap.get(i.dataId).id;return Hk(A,q,X,te,y,v,k,b,S,C,D,O,j,E,R,T,P,U,x,g,ae,m||0,se),ne}var Gae={kernelName:Ho,backendName:"wasm",setupFunc:Uae,kernelFunc:Hae},Gk;function jae(e){Gk=e.wasm.cwrap(Go,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function qae(e){let{inputs:t,attrs:n,backend:s}=e,{x:r,filter:a,bias:o,preluActivationWeights:i}=t,{strides:l,pad:u,dilations:c,dataFormat:d,dimRoundingMode:p,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,a.shape,l,c,u,p,!0),g=Md[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let A=s.dataIdMap.get(r.dataId).id,y=s.dataIdMap.get(a.dataId).id,x=f.outChannels,b=0;if(o!=null){let Q=s.dataIdMap.get(o.dataId);if(Q.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${Q.shape.length}.`);if(Q.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${Q.shape}) does not match the number of output channels (${x})`);b=Q.id}let v=f.filterHeight,k=f.filterWidth,S=f.padInfo.top,C=f.padInfo.right,D=f.padInfo.bottom,O=f.padInfo.left,E=f.dilationHeight,R=f.dilationWidth,T=f.strideHeight,P=f.strideWidth,U=f.inChannels,j=f.padInfo.type==="SAME"?1:0,q=f.batchSize,X=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let ne=s.makeOutput(f.outShape,"float32"),se=s.dataIdMap.get(ne.dataId).id,ae=i==null?0:s.dataIdMap.get(i.dataId).id;return Gk(A,q,X,te,y,v,k,b,S,C,D,O,j,E,R,T,P,U,x,g,ae,m||0,se),ne}var Xae={kernelName:Go,backendName:"wasm",setupFunc:jae,kernelFunc:qae},jk;function Kae(e){jk=e.wasm.cwrap(hl,null,["number","number","number","number","number","number","array","number"])}function Zae(e){let{backend:t,inputs:n}=e,{params:s,indices:r}=n,[a,o,i,l]=eA.prepareAndValidate(s,r),u=t.makeOutput(a,s.dtype);if(o===0)return u;let c=r.shape,d=c[c.length-1],h=t.dataIdMap.get(s.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(l).buffer),A=t.dataIdMap.get(u.dataId).id;return jk(h,qn[s.dtype],f,o,d,i,g,A),u}var Yae={kernelName:hl,backendName:"wasm",setupFunc:Kae,kernelFunc:Zae},qk;function Jae(e){qk=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Qae(e){let{backend:t,inputs:n,attrs:s}=e,{x:r,indices:a}=n,{axis:o,batchDims:i}=s,l=w.parseAxisParam(o,r.shape)[0],u=_.segment_util.collectGatherOpShapeInfo(r,a,l,i),c=Xn({inputs:{x:r},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:t}),d=w.sizeFromShape(a.shape),p=Xn({inputs:{x:a},attrs:{shape:[u.batchSize,d/u.batchSize]},backend:t}),h=[u.batchSize,u.outerSize,d/u.batchSize,u.sliceSize],m=t.makeOutput(h,r.dtype);if(w.sizeFromShape(r.shape)===0)return m;let f=c.shape.length-1,A=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(p.dataId).id,b=t.dataIdMap.get(m.dataId).id,v=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),k=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer);return qk(A,qn[r.dtype],v,f,x,u.batchSize,k,b),t.disposeData(c.dataId),t.disposeData(p.dataId),m.shape=u.outputShape,m}var eoe={kernelName:pl,backendName:"wasm",setupFunc:Jae,kernelFunc:Qae},toe=!1,noe=On(fl,toe,"bool"),soe=!1,roe=On(co,soe,"bool"),Xk;function aoe(e){Xk=e.wasm.cwrap(ho,null,["number","number","number"])}function ooe(e){let{inputs:{x:t},attrs:{alpha:n},backend:s}=e,r=s.dataIdMap.get(t.dataId).id,a=s.makeOutput(t.shape,t.dtype);if(w.sizeFromShape(t.shape)!==0){let o=s.dataIdMap.get(a.dataId).id;Xk(r,n,o)}return a}var ioe={kernelName:ho,backendName:"wasm",setupFunc:aoe,kernelFunc:ooe},loe=!1,uoe=On(yl,loe,"bool"),coe=!1,doe=On(xl,coe,"bool"),poe=vn(fo),hoe=!1,foe=On(vl,hoe,"bool"),Kk;function moe(e){Kk=e.wasm.cwrap(mo,null,["number, number, number"])}function goe(e){let{backend:t,inputs:n,attrs:s}=e,{reductionIndices:r,keepDims:a}=s,{x:o}=n,l=t.dataIdMap.get(o.dataId).id,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t);if(h){let x=t.dataIdMap.get(c.dataId).id;u=c,l=x}let m=u.shape.length;_.assertAxesAreInnerMostDims("max",d,m);let[f,g]=_.computeOutAndReduceShapes(u.shape,d),A=w.sizeFromShape(g),y=t.makeOutput(f,o.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;Kk(l,A,x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var Aoe={kernelName:mo,backendName:"wasm",setupFunc:moe,kernelFunc:goe},yoe=!1,xoe=On(go,yoe),Zk;function boe(e){Zk=e.wasm.cwrap(Ao,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function voe(e){let{inputs:t,attrs:n,backend:s}=e,r=t.x,a=s.dataIdMap.get(r.dataId).id,{filterSize:o,strides:i,pad:l,dimRoundingMode:u}=n,c=_.computePool2DInfo(r.shape,o,i,1,l,u),d=c.filterHeight,p=c.filterWidth,h=c.padInfo.top,m=c.padInfo.right,f=c.padInfo.bottom,g=c.padInfo.left,A=c.dilationHeight,y=c.dilationWidth,x=c.strideHeight,b=c.strideWidth,v=c.inChannels,k=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let S=s.makeOutput(c.outShape,"float32"),C=s.dataIdMap.get(S.dataId).id;return Zk(a,r.shape[0],r.shape[1],r.shape[2],d,p,h,m,f,g,A,y,x,b,v,k,C),S}var woe={kernelName:Ao,backendName:"wasm",setupFunc:boe,kernelFunc:voe},Yk;function koe(e){Yk=e.wasm.cwrap(yo,null,["number, number, number"])}function Ioe(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t),m=d;if(h){let b=t.dataIdMap.get(c.dataId).id;b!==i&&(u=c,l=b,m=_.getInnerMostAxes(m.length,u.shape.length))}_.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=_.computeOutAndReduceShapes(u.shape,m),A=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=k0({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let b=t.dataIdMap.get(x.dataId).id;Yk(l,A,b)}if(h&&t.disposeData(c.dataId),a){let b=_.expandShapeToKeepDim(x.shape,p);x.shape=b}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Soe={kernelName:yo,backendName:"wasm",setupFunc:koe,kernelFunc:Ioe},Jk;function Coe(e){Jk=e.wasm.cwrap(xo,null,["number, number, number"])}function Toe(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t);if(h){let x=t.dataIdMap.get(c.dataId).id;x!==i&&(u=c,l=x)}let m=u.shape.length;_.assertAxesAreInnerMostDims("min",d,m);let[f,g]=_.computeOutAndReduceShapes(u.shape,d),A=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;Jk(l,A,x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var Noe={kernelName:xo,backendName:"wasm",setupFunc:Coe,kernelFunc:Toe},Eoe=!1,Roe=On(bo,Eoe),U2;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(U2||(U2={}));var Qk;function Doe(e){Qk=e.wasm.cwrap(vo,null,["number","array","number","number","array","array","number","number"])}function _oe(e){let{inputs:{x:t},backend:n,attrs:{paddings:s,mode:r}}=e,a=s.map((m,f)=>m[0]+t.shape[f]+m[1]),o=n.dataIdMap.get(t.dataId).id,i=n.makeOutput(a,t.dtype),l=n.dataIdMap.get(i.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),c=s.map(m=>m[0]),d=s.map(m=>m[1]),p=new Uint8Array(new Int32Array(c).buffer),h=new Uint8Array(new Int32Array(d).buffer);return Qk(o,u,t.shape.length,qn[t.dtype],p,h,U2[r],l),i}var $oe={kernelName:vo,backendName:"wasm",kernelFunc:_oe,setupFunc:Doe},Foe=!0,Ooe=On(wo,Foe),Poe=vn(kl);function H2(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),s=n[0],r=n[1],a=n[2],o=n[3];return e.wasm._free(t),{pSelectedIndices:s,selectedSize:r,pSelectedScores:a,pValidOutputs:o}}var e8;function Moe(e){e8=e.wasm.cwrap(Sl,"number",["number","number","number","number","number"])}function zoe(e){let{backend:t,inputs:n,attrs:s}=e,{iouThreshold:r,maxOutputSize:a,scoreThreshold:o}=s,{boxes:i,scores:l}=n,u=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(l.dataId).id,d=e8(u,c,a,r,o),{pSelectedIndices:p,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=H2(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",p)}var Loe={kernelName:Sl,backendName:"wasm",setupFunc:Moe,kernelFunc:zoe},t8;function Boe(e){t8=e.wasm.cwrap(Cl,"number",["number","number","number","number","number","bool"])}function Woe(e){let{backend:t,inputs:n,attrs:s}=e,{iouThreshold:r,maxOutputSize:a,scoreThreshold:o,padToMaxOutputSize:i}=s,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,p=t8(c,d,a,r,o,i),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=H2(t,p);t.wasm._free(f);let A=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[A,y]}var Voe={kernelName:Cl,backendName:"wasm",setupFunc:Boe,kernelFunc:Woe},n8;function Uoe(e){n8=e.wasm.cwrap(Tl,"number",["number","number","number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:s}=e,{iouThreshold:r,maxOutputSize:a,scoreThreshold:o,softNmsSigma:i}=s,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,p=n8(c,d,a,r,o,i),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=H2(t,p);t.wasm._free(g);let A=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[A,y]}var Goe={kernelName:Tl,backendName:"wasm",setupFunc:Uoe,kernelFunc:Hoe},joe=!1,qoe=On(Il,joe,"bool"),s8;function Xoe(e){s8=e.wasm.cwrap(ko,null,["number","number","number","number","number"])}function Koe(e){let{inputs:t,backend:n,attrs:s}=e,{indices:r}=t,{depth:a,onValue:o,offValue:i}=s,l=n.makeOutput([...r.shape,a],"int32"),u=n.dataIdMap.get(l.dataId).id,d=n.dataIdMap.get(r.dataId).id;return s8(d,a,o,i,u),l}var Zoe={kernelName:ko,backendName:"wasm",setupFunc:Xoe,kernelFunc:Koe};function Yoe(e){let{inputs:{x:t},backend:n}=e,s=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(s).fill(1),s}var Joe={kernelName:Nl,backendName:"wasm",kernelFunc:Yoe};function Qoe(e){let{inputs:t,backend:n,attrs:s}=e,{axis:r}=s;if(t.length===1)return V2({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let a=t[0].shape,o=t[0].dtype;t.forEach(c=>{w.assertShapesMatch(a,c.shape,"All tensors passed to stack must have matching shapes"),w.assert(o===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=t.map(c=>{let d=V2({inputs:{input:c},backend:n,attrs:{dim:r}});return i.push(d),d}),u=Fk({inputs:l,backend:n,attrs:{axis:r}});return i.forEach(c=>n.disposeData(c.dataId)),u}var eie={kernelName:El,backendName:"wasm",kernelFunc:Qoe},r8;function tie(e){r8=e.wasm.cwrap(Io,null,["number","array","number","number","array","array","number","number"])}function nie(e){let{inputs:{x:t},backend:n,attrs:{paddings:s,constantValue:r}}=e,a=s.map((f,g)=>f[0]+t.shape[g]+f[1]);if(w.sizeFromShape(t.shape)===0)return Wk({backend:n,attrs:{shape:a,value:r,dtype:t.dtype}});let o=n.dataIdMap.get(t.dataId).id,i=n.makeOutput(a,t.dtype),u=n.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),d=s.map(f=>f[0]),p=s.map(f=>f[1]),h=new Uint8Array(new Int32Array(d).buffer),m=new Uint8Array(new Int32Array(p).buffer);return r8(o,c,t.shape.length,qn[t.dtype],h,m,r,u),i}var a8={kernelName:Io,backendName:"wasm",kernelFunc:nie,setupFunc:tie},sie=!1,rie=On(So,sie),o8;function aie(e){o8=e.wasm.cwrap(Co,null,["number","number","number"])}function oie(e){let{inputs:t,backend:n}=e,{x:s,alpha:r}=t,a=n.dataIdMap.get(s.dataId).id,o=n.dataIdMap.get(r.dataId).id,i=n.makeOutput(s.shape,"float32"),l=n.dataIdMap.get(i.dataId).id;return o8(a,o,l),i}var iie={kernelName:Co,backendName:"wasm",setupFunc:aie,kernelFunc:oie},i8;function lie(e){i8=e.wasm.cwrap(Rl,null,["number","number","number","number"])}function uie(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t),m=d;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==i&&(u=c,l=x,m=_.getInnerMostAxes(m.length,u.shape.length))}_.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=_.computeOutAndReduceShapes(u.shape,m),A=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;i8(l,A,qn[y.dtype],x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var cie={kernelName:Rl,backendName:"wasm",setupFunc:lie,kernelFunc:uie},die=e=>{let{backend:t,attrs:n}=e,{start:s,stop:r,step:a,dtype:o}=n,i=p2(s,r,a,o),l=t.makeOutput([i.length],o);return t.typedArrayFromHeap(l).set(i),l},pie={kernelName:wc,backendName:"wasm",kernelFunc:die},hie=!0,fie=On(ro,hie),mie=vn(To),gie=vn(Eo),l8;function Aie(e){l8=e.wasm.cwrap(No,null,["number","number","number","number","number","number","number","number","number","number"])}function yie(e){let{backend:t,inputs:n,attrs:s}=e,{images:r}=n,{alignCorners:a,halfPixelCenters:o,size:i}=s,[l,u]=i,[c,d,p,h]=r.shape,m=[c,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=k0({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let A=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return l8(A,c,d,p,h,l,u,a?1:0,o?1:0,x),g!=null&&t.disposeData(g.dataId),y}var xie={kernelName:No,backendName:"wasm",setupFunc:Aie,kernelFunc:yie},u8;function bie(e){u8=e.wasm.cwrap(Ro,null,["number","array","number","array","number","number"])}function vie(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dims:a}=s,o=w.parseAxisParam(a,r.shape);if(r.shape.length===0)return w0({inputs:{x:r},backend:n});let i=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(o).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);u8(l,c,o.length,d,r.shape.length,u);let p=Xn({inputs:{x:i},attrs:{shape:r.shape},backend:n});return n.disposeData(i.dataId),p}var wie={kernelName:Ro,backendName:"wasm",kernelFunc:vie,setupFunc:bie},c8;function kie(e){c8=e.wasm.cwrap(ql,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Iie(e){let{inputs:t,backend:n,attrs:s}=e,{image:r}=t,{radians:a,fillValue:o,center:i}=s,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(l.dataId).id,[d,p,h,m]=r.shape,[f,g]=_.getImageCenter(i,p,h),A=o===0,y=255,x=typeof o=="number"?[o,o,o,A?0:y]:[...o,y],b=new Uint8Array(new Int32Array(x).buffer);return c8(u,d,p,h,m,a,f,g,b,x.length,c),l}var Sie={kernelName:ql,backendName:"wasm",kernelFunc:Iie,setupFunc:kie},Cie=vn(Do),Tie=vn(_o),d8;function Nie(e){d8=e.wasm.cwrap($l,null,["number","number","number","number","number","number","array","number","number"])}function Eie(e){let{backend:t,inputs:n,attrs:s}=e,{indices:r,updates:a}=n,{shape:o}=s,i=t.makeOutput(o,a.dtype);if(w.sizeFromShape(o)===0)return i;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:d,outputSize:p}=tA.calculateShapes(a,r,o),m=t.dataIdMap.get(r.dataId).id,g=t.dataIdMap.get(a.dataId).id,A=new Uint8Array(new Int32Array(d).buffer),y=t.dataIdMap.get(i.dataId).id;return d8(m,g,qn[a.dtype],l,u,c,A,p,y),i}var Rie={kernelName:$l,backendName:"wasm",setupFunc:Nie,kernelFunc:Eie},p8;function Die(e){p8=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function _ie(e){let{inputs:t,backend:n}=e,{condition:s,t:r,e:a}=t,o=n.dataIdMap.get(s.dataId).id,i=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(a.dataId).id,u=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(u.dataId).id,d=s.shape.length,p=r.shape.length,h=d===0||d>1||p===1?1:w.sizeFromShape(r.shape.slice(1));return p8(o,i,l,h,c),u}var $ie={kernelName:Fl,backendName:"wasm",kernelFunc:_ie,setupFunc:Die},h8;function Fie(e){h8=e.wasm.cwrap(Fo,null,["number","number"])}function Oie(e){let{backend:t,inputs:{x:n}}=e,s=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),a=t.dataIdMap.get(r.dataId).id;return w.sizeFromShape(r.shape)===0||h8(s,a),r}var Pie={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Fie,kernelFunc:Oie},Mie=vn($o),f8;function zie(e){f8=e.wasm.cwrap(Mo,null,["number","number","number","number"])}function Lie(e){let{backend:t,inputs:{logits:n},attrs:{dim:s}}=e,r=t.dataIdMap.get(n.dataId).id,a=t.makeOutput(n.shape,n.dtype),o=t.dataIdMap.get(a.dataId).id,i=n.shape[s],l=w.sizeFromShape(n.shape)/i;return w.sizeFromShape(a.shape)===0||f8(r,o,i,l),a}var Bie={kernelName:Mo,backendName:"wasm",setupFunc:zie,kernelFunc:Lie};function Wie(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:a,paddings:o}=s,i=w.sizeFromShape(a),l=[[0,0]];l.push(...o);for(let k=1+a.length;k{let p=[...c];p[i]=d;let h=zd({inputs:{x:r},attrs:{begin:u,size:p},backend:s});return u[i]+=d,h})}var Hie={kernelName:Wl,backendName:"wasm",kernelFunc:Uie},Gie=vn(Oo),jie=vn(Ic),qie=!0,Xie=On(zo,qie),m8;function Kie(e){m8=e.wasm.cwrap(la,null,["number","number","number"])}function Zie(e){let{backend:t,inputs:n,attrs:s}=e,{alpha:r}=s,{x:a}=n,o=t.dataIdMap.get(a.dataId).id,i=t.makeOutput(a.shape,a.dtype),l=t.dataIdMap.get(i.dataId).id;return m8(o,r,l),i}var Yie={kernelName:la,backendName:"wasm",setupFunc:Kie,kernelFunc:Zie},g8;function Jie(e){g8=e.wasm.cwrap(Vl,null,["number","array","number","array","array","array","array","array","number","number"])}function Qie(e){let{backend:t,inputs:n,attrs:s}=e,{x:r}=n,{begin:a,end:o,strides:i}=s;i==null&&(i=new Array(a.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:d,shrinkAxisMask:p}=s,h=_.slice_util.maskToAxes(c);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&d!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-a.length,f=_.slice_util.maskToAxes(d),g=r.shape.slice();f.forEach(E=>{a[E]=0,o[E]=1,g.splice(E,0,1)});let A=Xn({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:y,end:x,strides:b}=_.slice_util.getNormalizedAxes(A.shape,h,m,a,o,i,l,u,c);a=y,o=x,i=b;let v=_.slice_util.maskToAxes(p);v.forEach(E=>{o[E]=a[E]+1,i[E]=1});let k=_.slice_util.computeOutShape(a,o,i),S=k.filter((E,R)=>v.indexOf(R)===-1);if(i.every(E=>E===1)){let E=zd({inputs:{x:A},attrs:{begin:a,size:k},backend:t});t.disposeData(A.dataId);let R=Xn({inputs:{x:E},attrs:{shape:S},backend:t});return t.disposeData(E.dataId),R}let D=t.makeOutput(S,"float32");if(!S.some(E=>E===0)){let E=t.dataIdMap.get(A.dataId).id,R=new Uint8Array(new Int32Array(w.computeStrides(A.shape)).buffer),T=new Uint8Array(new Int32Array(a).buffer),P=new Uint8Array(new Int32Array(o).buffer),U=new Uint8Array(new Int32Array(i).buffer),j=new Uint8Array(new Int32Array(S).buffer),q=new Uint8Array(new Int32Array(w.computeStrides(S)).buffer),X=t.dataIdMap.get(D.dataId).id;g8(E,R,A.shape.length,T,P,U,j,q,S.length,X)}t.disposeData(A.dataId);let O=Xn({inputs:{x:D},attrs:{shape:S},backend:t});return t.disposeData(D.dataId),O}var ele={kernelName:Vl,backendName:"wasm",setupFunc:Jie,kernelFunc:Qie},tle=!0,nle=On(Lo,tle),A8;function sle(e){A8=e.wasm.cwrap(Po,null,["number, number, number"])}function rle(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t),m=d;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==i&&(u=c,l=x,m=_.getInnerMostAxes(m.length,u.shape.length))}_.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=_.computeOutAndReduceShapes(u.shape,m),A=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;A8(l,A,x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var ale={kernelName:Po,backendName:"wasm",setupFunc:sle,kernelFunc:rle},ole=vn(Bo),ile=vn(Wo),y8;function lle(e){y8=e.wasm.cwrap(ia,null,["number","array","number","array","number","number"])}function ule(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,a=n.dataIdMap.get(r.dataId).id,{reps:o}=s,i=new Array(r.shape.length);for(let p=0;p{let{x:s}=e,{k:r,sorted:a}=n,o=t.dataIdMap.get(s.dataId).id,i=new Uint8Array(new Int32Array(s.shape).buffer),l=s.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,s.dtype),c=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),p=t.dataIdMap.get(d.dataId).id;return x8(o,i,s.shape.length,qn[s.dtype],r,a,c,p),[u,d]},hle={kernelName:Ul,backendName:"wasm",setupFunc:dle,kernelFunc:ple},b8;function fle(e){b8=e.wasm.cwrap(Hl,null,["number","number","bool","number","number","number","number","number","number","array","number","number","number","number","number"])}function mle(e){let{backend:t,inputs:n,attrs:s}=e,{image:r,transforms:a}=n,{interpolation:o,fillMode:i,fillValue:l,outputShape:u}=s,[c,d,p,h]=r.shape,[m,f]=u!=null?u:[d,p],g=[c,m,f,h],A=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=t.makeOutput(g,r.dtype),x=t.dataIdMap.get(y.dataId).id,v=t.dataIdMap.get(r.dataId).id,S=t.dataIdMap.get(a.dataId).id,C=o==="nearest"?1:2,D;switch(i){case"constant":D=1;break;case"reflect":D=2;break;case"wrap":D=3;break;case"nearest":D=4;break;default:D=1;break}return b8(v,S,a.shape[0]>1,c,m,f,h,p,d,A,r.shape.length-1,C,D,l,x),y}var gle={kernelName:Hl,backendName:"wasm",setupFunc:fle,kernelFunc:mle};function Ale(e){let{inputs:t,backend:n,attrs:s}=e,{value:r}=t,{axis:a}=s;a<0&&(a+=r.shape.length);let o=r.shape[a],i=r.shape.length,l=new Array(i-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var yle={kernelName:Gl,backendName:"wasm",kernelFunc:Ale};function xle(e){let{inputs:{x:t},backend:n}=e,s=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(s).fill(0),s}var ble={kernelName:jl,backendName:"wasm",kernelFunc:xle},vle=[kre,Sre,Nre,Pre,Lre,Vre,Gre,Kre,tae,nae,sae,oae,iae,cae,hae,fae,mae,yae,vae,Iae,Tae,Nae,Rae,Dae,_ae,$ae,Pae,Mae,Lae,wre,Vae,Gae,Xae,Yae,eoe,noe,roe,Ere,ioe,uoe,doe,poe,foe,Aoe,xoe,woe,Soe,Noe,Roe,$oe,Ooe,Poe,Loe,Voe,Goe,qoe,Zoe,Joe,eie,a8,rie,iie,cie,pie,fie,mie,gie,jre,xie,wie,Sie,Tie,Cie,Rie,$ie,Pie,Mie,Qre,Bie,Vie,Hie,Gie,jie,Xie,Yie,ele,nle,ale,ole,ile,cle,hle,gle,$re,yle,ble];for(let e of vle)ua(e);var G2=Y();G2.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));G2.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(G2.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var v8=Ua(kC()),wle='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',kle=Ua(IC()),w8=class extends uc{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Sp(this,Qn())}write(e,t,n){let s={id:this.dataIdNextNumber++};return this.move(s,e,t,n,1),s}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=w.now();return e(),{kernelMs:w.now()-t}}move(e,t,n,s,r){let a=this.dataIdNextNumber++;if(s==="string"){let u=t;this.dataIdMap.set(e,{id:a,stringBytes:u,shape:n,dtype:s,memoryOffset:null,refCount:r});return}let o=w.sizeFromShape(n),i=o*w.bytesPerElement(s),l=this.wasm._malloc(i);this.dataIdMap.set(e,{id:a,memoryOffset:l,shape:n,dtype:s,refCount:r}),this.wasm.tfjs.registerTensor(a,o,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,i),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:s,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let a=this.wasm.HEAPU8.slice(t,t+w.sizeFromShape(s)*w.bytesPerElement(n));return Cle(a.buffer,n)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let s;if(n==null)s=this.write(null,e,t);else{let r=this.dataIdNextNumber++;s={id:r},this.dataIdMap.set(s,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let a=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,a,n)}return{dataId:s,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let s=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),a=w.sizeFromShape(e);switch(t){case"float32":return new Float32Array(s,r,a);case"int32":return new Int32Array(s,r,a);case"bool":return new Uint8Array(s,r,a);default:throw new Error(`Unknown dtype ${t}`)}}};function Ile(e){return(t,n)=>(w.fetch(e,{credentials:"same-origin"}).then(s=>{s.ok||t.env.a(`failed to load wasm binary file at '${e}'`),s.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(a=>{n(a.instance,a.module)})})}),{})}function k8(e,t,n){if(I0!=null)return I0;let s="tfjs-backend-wasm.wasm";return e&&t?s="tfjs-backend-wasm-threaded-simd.wasm":e&&(s="tfjs-backend-wasm-simd.wasm"),Bd!=null&&Bd[s]!=null?Bd[s]:n+s}async function Sle(){let[e,t]=await Promise.all([Y().getAsync("WASM_HAS_SIMD_SUPPORT"),Y().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,s)=>{let r={};r.locateFile=(i,l)=>{if(i.endsWith(".worker.js")){let u=wle,c=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(c)}return i.endsWith(".wasm")?k8(e,t,Ld!=null?Ld:l):l+i},j2&&(r.instantiateWasm=Ile(k8(e,t,Ld!=null?Ld:"")));let a=!1;r.onAbort=()=>{if(a||Wd)return;Wd=!0,s({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let o;t&&e&&I0==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+v8.default.toString()],{type:"text/javascript"}),o=(0,v8.default)(r)):o=(0,kle.default)(r),o.then(i=>{a=!0,Wd=!1;let l=null;i.tfjs={init:i.cwrap("init",null,[]),registerTensor:i.cwrap("register_tensor",null,["number","number","number"]),disposeData:i.cwrap("dispose_data",l,["number"]),dispose:i.cwrap("dispose",l,[])},n({wasm:i})})})}function Cle(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var Tle=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],I0=null,Ld=null,Bd={},Wd=!1,j2=!1;function Nle(e,t=!1){if(iA("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Wd)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");I0=e,j2=t}function I8(e,t=!1){if(Wd)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Ld=e;else{Bd=e;let n=Tle.filter(s=>Bd[s]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}j2=t}var Ele="3.9.0",Rle=2;tu("wasm",async()=>{let{wasm:e}=await Sle();return new w8(e)},Rle);var Dle="3.9.0",_le="3.9.0",$le="3.9.0",Fle="3.9.0",Ole="3.9.0",Ple="3.9.0",Mle="3.9.0",zle="3.9.0",Lle={tfjs:Dle,"tfjs-core":_le,"tfjs-data":$le,"tfjs-layers":Fle,"tfjs-converter":Ole,"tfjs-backend-cpu":Ple,"tfjs-backend-webgl":Mle,"tfjs-backend-wasm":zle};var q2="2.3.0";function Wle(e,t,n){let s=function(i,l,u){let c=new RegExp("\\b"+l+" \\w+ (\\w+)","ig");i.replace(c,(d,p)=>(u[p]=0,d))},r=function(i,l){let u=e.createShader(l);if(e.shaderSource(u,i),e.compileShader(u),!e.getShaderParameter(u,e.COMPILE_STATUS))throw new Error("filter: gl compile failed",e.getShaderInfoLog(u));return u};this.uniform={},this.attribute={};let a=r(t,e.VERTEX_SHADER),o=r(n,e.FRAGMENT_SHADER);if(this.id=e.createProgram(),e.attachShader(this.id,a),e.attachShader(this.id,o),e.linkProgram(this.id),!e.getProgramParameter(this.id,e.LINK_STATUS))throw new Error("filter: gl link failed",e.getProgramInfoLog(this.id));e.useProgram(this.id),s(t,"attribute",this.attribute);for(let i in this.attribute)this.attribute[i]=e.getAttribLocation(this.id,i);s(t,"uniform",this.uniform),s(n,"uniform",this.uniform);for(let i in this.uniform)this.uniform[i]=e.getUniformLocation(this.id,i)}function S8(e){e||(e={});let t=0,n=null,s=!1,r=-1,a=[null,null],o=[],i=-1,l=-1,u=null,c=null,d={},p=e.canvas||document.createElement("canvas"),h={},m={INTERMEDIATE:1},f=p.getContext("webgl");if(!f)throw new Error("filter: context failed");this.addFilter=function(v){let k=Array.prototype.slice.call(arguments,1),S=d[v];o.push({func:S,args:k})},this.reset=function(){o=[]};let g=function(v,k){if(!(v===i&&k===l)){if(p.width=v,i=v,p.height=k,l=k,!u){let S=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);u=f.createBuffer(),f.bindBuffer(f.ARRAY_BUFFER,u),f.bufferData(f.ARRAY_BUFFER,S,f.STATIC_DRAW),f.pixelStorei(f.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}f.viewport(0,0,i,l),a=[null,null]}},A=function(v,k){let S=f.createFramebuffer();f.bindFramebuffer(f.FRAMEBUFFER,S);let C=f.createRenderbuffer();f.bindRenderbuffer(f.RENDERBUFFER,C);let D=f.createTexture();return f.bindTexture(f.TEXTURE_2D,D),f.texImage2D(f.TEXTURE_2D,0,f.RGBA,v,k,0,f.RGBA,f.UNSIGNED_BYTE,null),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MAG_FILTER,f.LINEAR),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MIN_FILTER,f.LINEAR),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE),f.framebufferTexture2D(f.FRAMEBUFFER,f.COLOR_ATTACHMENT0,f.TEXTURE_2D,D,0),f.bindTexture(f.TEXTURE_2D,null),f.bindFramebuffer(f.FRAMEBUFFER,null),{fbo:S,texture:D}},y=function(v){return a[v]=a[v]||A(i,l),a[v]},x=function(v=null){var D,O;let k=null,S=null,C=!1;t===0?k=n:k=(D=y(r))==null?void 0:D.texture,t++,s&&!(v&m.INTERMEDIATE)?(S=null,C=t%2==0):(r=(r+1)%2,S=(O=y(r))==null?void 0:O.fbo),f.bindTexture(f.TEXTURE_2D,k),f.bindFramebuffer(f.FRAMEBUFFER,S),f.uniform1f(c.uniform.flipY,C?-1:1),f.drawArrays(f.TRIANGLES,0,6)};this.apply=function(v){if(g(v.width,v.height),t=0,n||(n=f.createTexture()),f.bindTexture(f.TEXTURE_2D,n),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MIN_FILTER,f.NEAREST),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MAG_FILTER,f.NEAREST),f.texImage2D(f.TEXTURE_2D,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,v),o.length===0)return x(),p;for(let k=0;k{let D=b.shape[0],O=b.shape[1],E=_.segment_util.segOpComputeOptimalWindowSize(O,C),R={windowSize:E,inSize:O,batchSize:D,numSegments:C},T=new gre(R,v),P=n.compileAndRun(T,[b,k],S);if(l.push(P),P.shape[1]===C)return P;let U=yk({backend:n,attrs:{start:0,stop:C,step:1,dtype:"float32"}}),j=kk({inputs:{x:U},backend:n,attrs:{reps:[O/E]}});return l.push(U),l.push(j),g(P,v,j,S,C)},A=g(m,"unsortedSegmentSum",a,f,o),y=be({inputs:{x:A},backend:n,attrs:{shape:p}}),x=y;if(c!=null){l.push(y);let b=_.getUndoAxesPermutation(c);x=Fn({inputs:{x},backend:n,attrs:{perm:b}})}return l.forEach(b=>n.disposeIntermediateTensorInfo(b)),x}var yre={kernelName:Sc,backendName:"webgl",kernelFunc:Are},xre=[qee,Zee,$Z,OZ,zZ,WZ,UZ,jZ,XZ,ZZ,eY,nY,aY,lY,mY,dY,yY,wY,bY,CY,NY,RY,FY,WY,UY,KY,YY,tJ,rJ,fZ,uJ,xJ,vJ,hJ,SJ,TJ,kJ,RJ,$J,PJ,zJ,BJ,UJ,KJ,YJ,GJ,eQ,sQ,aQ,uQ,hQ,AQ,bQ,vQ,wQ,IQ,CQ,NQ,RQ,_Q,PQ,LQ,VQ,HQ,qQ,ZQ,eee,ree,hZ,oee,iJ,uee,pee,mee,gZ,xee,kee,See,_ee,Eee,Pee,Lee,Uee,Jee,ote,rte,cte,pte,fte,nte,gte,yte,wte,Cte,Rte,zte,vZ,Bte,Ute,jte,Kte,GY,Jte,ene,nne,ane,une,yZ,dne,pne,jY,Fte,mne,kne,xne,kZ,Tne,Rne,Fne,Mne,Wne,Une,jne,Kne,Yne,ese,sse,ase,lse,dse,fse,LY,Pte,Ase,xse,vse,kse,Sse,Tse,Ese,Dse,$se,Pse,zse,Bse,Use,Gse,qse,Kse,Ote,RZ,Jse,tre,rre,lre,dre,DZ,hre,mre,yre,Qte];for(let e of xre)ua(e);var qn;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(qn||(qn={}));var Md;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(Md||(Md={}));var Sk;function bre(e){Sk=e.wasm.cwrap(Uo,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function vre(e){let{inputs:t,backend:n,attrs:s}=e,{a:r,b:a,bias:o,preluActivationWeights:i}=t;if(r.dtype!=="float32"||a.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:d}=s,p=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(a.dataId).id,m=0;if(o!=null){let C=n.dataIdMap.get(o.dataId);if(C.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${C.shape.length}.`);m=C.id}let f=i==null?0:n.dataIdMap.get(i.dataId).id,g=Md[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let A=l?r.shape[2]:r.shape[1],y=u?a.shape[1]:a.shape[2],x=r.shape[0],b=n.makeOutput([x,A,y],r.dtype),v=n.dataIdMap.get(b.dataId).id,k=new Uint8Array(new Int32Array(r.shape).buffer),S=new Uint8Array(new Int32Array(a.shape).buffer);return Sk(p,k,r.shape.length,h,S,a.shape.length,l,u,g,m,f,d||0,v),b}var wre={kernelName:Uo,backendName:"wasm",setupFunc:bre,kernelFunc:vre};function vn(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function s(r){let{backend:a,inputs:{x:o}}=r,i=a.dataIdMap.get(o.dataId).id,l=a.makeOutput(o.shape,o.dtype),u=a.dataIdMap.get(l.dataId).id;return w.sizeFromShape(l.shape)===0||t(i,u),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:s}}var kre=vn(qi);function On(e,t,n){let s;function r(o){s=o.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function a(o){let{backend:i,inputs:l}=o,{a:u,b:c}=l,d=i.dataIdMap.get(u.dataId).id,p=i.dataIdMap.get(c.dataId).id,h=n!=null?n:u.dtype,m=_.assertAndGetBroadcastShape(u.shape,c.shape),f=i.makeOutput(m,h);if(w.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),A=new Uint8Array(new Int32Array(c.shape).buffer),y=i.dataIdMap.get(f.dataId).id,x=()=>s(d,g,u.shape.length,p,A,c.shape.length,qn[u.dtype],y);if(t&&u.dtype==="float32")return x(),f;let b=_.getBroadcastDims(u.shape,m),v=_.getBroadcastDims(c.shape,m),k=b.every((C,D)=>C===D),S=v.every((C,D)=>C===D);if(k&&S)return x(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:a}}var Ire=!0,Sre=On(aa,Ire),Ck;function Cre(e){Ck=e.wasm.cwrap(ja,null,["array","number","number","number"])}function Tre(e){let{inputs:t,backend:n}=e,s=n.makeOutput(t[0].shape,t[0].dtype);if(w.sizeFromShape(s.shape)===0)return s;let r=t.map(i=>n.dataIdMap.get(i.dataId).id),a=new Uint8Array(new Int32Array(r).buffer),o=n.dataIdMap.get(s.dataId).id;return Ck(a,r.length,qn[s.dtype],o),s}var Nre={kernelName:ja,backendName:"wasm",setupFunc:Cre,kernelFunc:Tre};function w0(e){let{inputs:{x:t},backend:n}=e,s=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(s).set(r),s}var Ere={kernelName:po,backendName:"wasm",kernelFunc:w0},Tk;function Rre(e){Tk=e.wasm.cwrap(Vo,null,["number","array","number","number","number","array","number"])}function Lu(e){let{inputs:t,backend:n,attrs:s}=e,[r,a]=_re(t.x.shape,s.perm),o=!0;for(let m=0;m=r&&(a===-1||s[a]>s[o])&&(a=o);s[a]=r}return[n,s]}var $re={kernelName:Vo,backendName:"wasm",kernelFunc:Lu,setupFunc:Rre};function Da(e,t,n){let s=e.shape,r=e.shape.length,a=w.parseAxisParam(t,s),o=a,i=_.getAxesPermutation(o,r),l=null,u=!1;if(i!=null){let c=new Array(r);for(let h=0;h`new shape: ${o}, old shape: ${s.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(s.dataId),{dataId:s.dataId,shape:o,dtype:s.dtype}}var jre={kernelName:_l,backendName:"wasm",kernelFunc:Xn},_k;function qre(e){_k=e.wasm.cwrap(Ka,null,["number","array","number","number","array","number","number","number","number"])}function Xre(e){let{inputs:t,backend:n,attrs:s}=e,{a:r,b:a}=t,{transposeA:o,transposeB:i}=s;if(r.dtype!=="float32"||a.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=a.shape.length,c=o?r.shape[l-2]:r.shape[l-1],d=i?a.shape[u-1]:a.shape[u-2],p=o?r.shape[l-1]:r.shape[l-2],h=i?a.shape[u-2]:a.shape[u-1],m=r.shape.slice(0,-2),f=a.shape.slice(0,-2),g=w.sizeFromShape(m),A=w.sizeFromShape(f),y=g===A||g===1||A===1;w.assert(l>=2&&u>=2&&y,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${f}).`);let b=(g>A?r.shape.slice(0,-2):a.shape.slice(0,-2)).concat([p,h]);w.assert(c===d,()=>`Error in matMul: inner shapes (${c}) and (${d}) of Tensors with shapes ${r.shape} and ${a.shape} and transposeA=${o} and transposeB=${i} must match.`);let v=o?[g,c,p]:[g,p,c],k=i?[A,h,d]:[A,d,h],S=Xn({inputs:{x:r},backend:n,attrs:{shape:v}}),C=Xn({inputs:{x:a},backend:n,attrs:{shape:k}}),D=n.dataIdMap.get(S.dataId).id,O=n.dataIdMap.get(C.dataId).id,E=o?S.shape[2]:S.shape[1],R=i?C.shape[1]:C.shape[2],T=Math.max(g,A),P=n.makeOutput([T,E,R],S.dtype),U=n.dataIdMap.get(P.dataId).id,j=new Uint8Array(new Int32Array(S.shape).buffer),q=new Uint8Array(new Int32Array(C.shape).buffer);return _k(D,j,S.shape.length,O,q,C.shape.length,o,i,U),n.disposeData(S.dataId),n.disposeData(C.dataId),P.shape=b,P}var Kre={kernelName:Ka,backendName:"wasm",setupFunc:qre,kernelFunc:Xre};function zd(e){let{inputs:{x:t},attrs:{begin:n,size:s},backend:r}=e,[a,o]=Nn.parseSliceParams(t,n,s),i=Nn.isSliceContinous(t.shape,a,o),l=r.readSync(t.dataId),u=r.makeOutput(o,t.dtype),c=w.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(i){let m=Nn.computeFlatOffset(a,c);return t.dtype==="string"?d.stringBytes=l.slice(m,m+w.sizeFromShape(o)):r.typedArrayFromHeap(u).set(l.subarray(m,m+w.sizeFromShape(o))),u}if(t.dtype==="string"){let m=Jf(l,a,o,t.shape,t.dtype);return d.stringBytes=m,u}let p=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Zre(l,c[0],p,a,o);else if(h===3)Yre(l,c[0],c[1],p,a,o);else if(h===4)Jre(l,c[0],c[1],c[2],p,a,o);else{let m=Jf(l,a,o,t.shape,t.dtype);p.set(m)}return u}function Zre(e,t,n,s,r){let a=0,o=s[0],i=s[1],l=o+r[0];for(let u=o;uA*y),l=_.getReshaped(r.shape,a,i),u=_.getPermuted(l.length,a.length),c=_.getReshapedPermuted(r.shape,a,i),d=_.getSliceBeginCoords(o,a.length),p=_.getSliceSize(c,o,a.length),h=Xn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Lu({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Xn({inputs:{x:m},backend:n,attrs:{shape:c}}),g=zd({inputs:{x:f},backend:n,attrs:{begin:d,size:p}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var tae={kernelName:sl,backendName:"wasm",kernelFunc:eae};function k0(e){let{inputs:{x:t},attrs:{dtype:n},backend:s}=e,r=s.makeOutput(t.shape,n),a=s.typedArrayFromHeap(t);return s.typedArrayFromHeap(r).set(a),r}var nae={kernelName:Za,backendName:"wasm",kernelFunc:k0},sae=vn(Ya),$k;function rae(e){$k=e.wasm.cwrap(oa,null,["number","number","number","number"])}function aae(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{clipValueMin:a,clipValueMax:o}=s,i=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return $k(i,a,o,u),l}var oae={kernelName:oa,backendName:"wasm",setupFunc:rae,kernelFunc:aae};function Fk(e){let{inputs:t,backend:n}=e,s=w.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),s),a=t.filter(h=>w.sizeFromShape(h.shape)>0);if(a.length===1)return w0({inputs:{x:a[0]},backend:n});let o=n.makeOutput(r,t[0].dtype);if(w.sizeFromShape(r)===0)return o;let i=a.map(h=>h.shape);if(_.assertParamsConsistent(i,s),a[0].dtype==="string"){let h=a.map(x=>{let b=w.sizeFromShape(x.shape.slice(s));return Xn({inputs:{x},backend:n,attrs:{shape:[-1,b]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=_.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=u2(m,r,t[0].dtype,f),A=_.computeOutShape(a.map(x=>x.shape),s);o.shape=A;let y=n.dataIdMap.get(o.dataId);return y.stringBytes=_.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=w.sizeFromShape(a[0].shape.slice(0,s)),u=0,c=a.map(h=>{let m=w.sizeFromShape(h.shape.slice(s));return u+=m,m}),d=a.map(h=>n.typedArrayFromHeap(h)),p=n.typedArrayFromHeap(o);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=_.getAxesPermutation([a],l),c=r;u!==null&&(c=Lu({inputs:{x:r},attrs:{perm:u},backend:n}));let d=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[d],l);let p=n.makeOutput(c.shape,c.dtype),h=c.shape[d],m=n.dataIdMap.get(c.dataId).id,f=n.dataIdMap.get(p.dataId).id;zk(m,o?1:0,i?1:0,h,f,qn[r.dtype]);let g=p;if(u!==null){let A=_.getUndoAxesPermutation(u);g=Lu({inputs:{x:p},attrs:{perm:A},backend:n}),n.disposeData(c.dataId),n.disposeData(p.dataId)}return g}var vae={kernelName:no,backendName:"wasm",setupFunc:xae,kernelFunc:bae},Lk;function wae(e){Lk=e.wasm.cwrap(ol,null,["number","number","number","array","number","array","array","number","number"])}function kae(e){let{backend:t,inputs:n,attrs:s}=e,{x:r}=n,{blockSize:a,dataFormat:o}=s;w.assert(a>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${a}`);let i=r.shape[0],l=o==="NHWC"?r.shape[1]:r.shape[2],u=o==="NHWC"?r.shape[2]:r.shape[3],c=o==="NHWC"?r.shape[3]:r.shape[1],d=l*a,p=u*a,h=c/(a*a),m=o==="NHWC"?[i,d,p,h]:[i,h,d,p],f=t.makeOutput(m,"float32"),A=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),x=new Uint8Array(new Int32Array(m).buffer),b=new Uint8Array(new Int32Array(w.computeStrides(m)).buffer),v=t.dataIdMap.get(f.dataId).id;return Lk(A,a,o==="NHWC"?1:0,y,r.shape.length-1,x,b,m.length,v),f}var Iae={kernelName:ol,backendName:"wasm",setupFunc:wae,kernelFunc:kae},Bk;function Sae(e){Bk=e.wasm.cwrap(so,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cae(e){let{inputs:t,attrs:n,backend:s}=e,{x:r,filter:a}=t,o=s.dataIdMap.get(r.dataId).id,i=s.dataIdMap.get(a.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:d}=n,p=u==null?[1,1]:u,h=_.computeConv2DInfo(r.shape,a.shape,l,p,c,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,A=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,b=h.dilationHeight,v=h.dilationWidth,k=h.strideHeight,S=h.strideWidth,C=h.inChannels,D=h.outChannels,O=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let E=s.makeOutput(h.outShape,"float32"),R=s.dataIdMap.get(E.dataId).id;return Bk(o,r.shape[0],r.shape[1],r.shape[2],i,m,f,g,A,y,x,O,b,v,k,S,C,D,R),E}var Tae={kernelName:so,backendName:"wasm",setupFunc:Sae,kernelFunc:Cae},Nae=vn(ao),Eae=!1,Rae=On(ll,Eae,"bool"),Dae=vn(oo);function V2(e){let{inputs:t,attrs:n,backend:s}=e,{input:r}=t,{dim:a}=n,o=r.shape.length,i=r.shape.slice(),l=a;return a<0&&(w.assert(-(o+1)<=a,()=>`Axis must be in the interval [${-(o+1)}, ${o}]`),l=o+a+1),i.splice(l,0,1),Xn({inputs:{x:r},backend:s,attrs:{shape:i}})}var _ae={kernelName:ul,backendName:"wasm",kernelFunc:V2};function Wk(e){let{attrs:{shape:t,value:n,dtype:s},backend:r}=e,a=r.makeOutput(t,s);return r.typedArrayFromHeap(a).fill(n),a}var $ae={kernelName:Ac,backendName:"wasm",kernelFunc:Wk},Vk;function Fae(e){Vk=e.wasm.cwrap(dl,null,["number","number","number","number","number","number"])}function Oae(e){let{inputs:t,backend:n}=e,{image:s}=t,r=n.makeOutput(s.shape,s.dtype),a=n.dataIdMap.get(s.dataId).id,o=n.dataIdMap.get(r.dataId).id,[i,l,u,c]=s.shape;return Vk(a,i,l,u,c,o),r}var Pae={kernelName:dl,backendName:"wasm",kernelFunc:Oae,setupFunc:Fae},Mae=vn(io),zae=!1,Lae=On(lo,zae),Uk;function Bae(e){Uk=e.wasm.cwrap(uo,null,["number","number","number","number","number","number","number"])}function Wae(e){let{backend:t,inputs:n,attrs:s}=e,{varianceEpsilon:r}=s,{x:a,mean:o,variance:i,offset:l,scale:u}=n,c=t.dataIdMap.get(a.dataId).id,d=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(i.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(a.shape,a.dtype);if(w.sizeFromShape(a.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return Uk(c,d,p,h,m,r,g),f}var Vae={kernelName:uo,backendName:"wasm",setupFunc:Bae,kernelFunc:Wae},Hk;function Uae(e){Hk=e.wasm.cwrap(Ho,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Hae(e){let{inputs:t,attrs:n,backend:s}=e,{x:r,filter:a,bias:o,preluActivationWeights:i}=t,{strides:l,pad:u,dilations:c,dataFormat:d,dimRoundingMode:p,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,a.shape,l,c,u,p),g=Md[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let A=s.dataIdMap.get(r.dataId).id,y=s.dataIdMap.get(a.dataId).id,x=f.outChannels,b=0;if(o!=null){let Q=s.dataIdMap.get(o.dataId);if(Q.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${Q.shape.length}.`);if(Q.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${Q.shape}) does not match the number of output channels (${x})`);b=Q.id}let v=f.filterHeight,k=f.filterWidth,S=f.padInfo.top,C=f.padInfo.right,D=f.padInfo.bottom,O=f.padInfo.left,E=f.dilationHeight,R=f.dilationWidth,T=f.strideHeight,P=f.strideWidth,U=f.inChannels,j=f.padInfo.type==="SAME"?1:0,q=f.batchSize,X=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let ne=s.makeOutput(f.outShape,"float32"),se=s.dataIdMap.get(ne.dataId).id,ae=i==null?0:s.dataIdMap.get(i.dataId).id;return Hk(A,q,X,te,y,v,k,b,S,C,D,O,j,E,R,T,P,U,x,g,ae,m||0,se),ne}var Gae={kernelName:Ho,backendName:"wasm",setupFunc:Uae,kernelFunc:Hae},Gk;function jae(e){Gk=e.wasm.cwrap(Go,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function qae(e){let{inputs:t,attrs:n,backend:s}=e,{x:r,filter:a,bias:o,preluActivationWeights:i}=t,{strides:l,pad:u,dilations:c,dataFormat:d,dimRoundingMode:p,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,a.shape,l,c,u,p,!0),g=Md[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let A=s.dataIdMap.get(r.dataId).id,y=s.dataIdMap.get(a.dataId).id,x=f.outChannels,b=0;if(o!=null){let Q=s.dataIdMap.get(o.dataId);if(Q.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${Q.shape.length}.`);if(Q.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${Q.shape}) does not match the number of output channels (${x})`);b=Q.id}let v=f.filterHeight,k=f.filterWidth,S=f.padInfo.top,C=f.padInfo.right,D=f.padInfo.bottom,O=f.padInfo.left,E=f.dilationHeight,R=f.dilationWidth,T=f.strideHeight,P=f.strideWidth,U=f.inChannels,j=f.padInfo.type==="SAME"?1:0,q=f.batchSize,X=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let ne=s.makeOutput(f.outShape,"float32"),se=s.dataIdMap.get(ne.dataId).id,ae=i==null?0:s.dataIdMap.get(i.dataId).id;return Gk(A,q,X,te,y,v,k,b,S,C,D,O,j,E,R,T,P,U,x,g,ae,m||0,se),ne}var Xae={kernelName:Go,backendName:"wasm",setupFunc:jae,kernelFunc:qae},jk;function Kae(e){jk=e.wasm.cwrap(hl,null,["number","number","number","number","number","number","array","number"])}function Zae(e){let{backend:t,inputs:n}=e,{params:s,indices:r}=n,[a,o,i,l]=eA.prepareAndValidate(s,r),u=t.makeOutput(a,s.dtype);if(o===0)return u;let c=r.shape,d=c[c.length-1],h=t.dataIdMap.get(s.dataId).id,f=t.dataIdMap.get(r.dataId).id,g=new Uint8Array(new Int32Array(l).buffer),A=t.dataIdMap.get(u.dataId).id;return jk(h,qn[s.dtype],f,o,d,i,g,A),u}var Yae={kernelName:hl,backendName:"wasm",setupFunc:Kae,kernelFunc:Zae},qk;function Jae(e){qk=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Qae(e){let{backend:t,inputs:n,attrs:s}=e,{x:r,indices:a}=n,{axis:o,batchDims:i}=s,l=w.parseAxisParam(o,r.shape)[0],u=_.segment_util.collectGatherOpShapeInfo(r,a,l,i),c=Xn({inputs:{x:r},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:t}),d=w.sizeFromShape(a.shape),p=Xn({inputs:{x:a},attrs:{shape:[u.batchSize,d/u.batchSize]},backend:t}),h=[u.batchSize,u.outerSize,d/u.batchSize,u.sliceSize],m=t.makeOutput(h,r.dtype);if(w.sizeFromShape(r.shape)===0)return m;let f=c.shape.length-1,A=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(p.dataId).id,b=t.dataIdMap.get(m.dataId).id,v=new Uint8Array(new Int32Array(w.computeStrides(c.shape)).buffer),k=new Uint8Array(new Int32Array(w.computeStrides(h)).buffer);return qk(A,qn[r.dtype],v,f,x,u.batchSize,k,b),t.disposeData(c.dataId),t.disposeData(p.dataId),m.shape=u.outputShape,m}var eoe={kernelName:pl,backendName:"wasm",setupFunc:Jae,kernelFunc:Qae},toe=!1,noe=On(fl,toe,"bool"),soe=!1,roe=On(co,soe,"bool"),Xk;function aoe(e){Xk=e.wasm.cwrap(ho,null,["number","number","number"])}function ooe(e){let{inputs:{x:t},attrs:{alpha:n},backend:s}=e,r=s.dataIdMap.get(t.dataId).id,a=s.makeOutput(t.shape,t.dtype);if(w.sizeFromShape(t.shape)!==0){let o=s.dataIdMap.get(a.dataId).id;Xk(r,n,o)}return a}var ioe={kernelName:ho,backendName:"wasm",setupFunc:aoe,kernelFunc:ooe},loe=!1,uoe=On(yl,loe,"bool"),coe=!1,doe=On(xl,coe,"bool"),poe=vn(fo),hoe=!1,foe=On(vl,hoe,"bool"),Kk;function moe(e){Kk=e.wasm.cwrap(mo,null,["number, number, number"])}function goe(e){let{backend:t,inputs:n,attrs:s}=e,{reductionIndices:r,keepDims:a}=s,{x:o}=n,l=t.dataIdMap.get(o.dataId).id,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t);if(h){let x=t.dataIdMap.get(c.dataId).id;u=c,l=x}let m=u.shape.length;_.assertAxesAreInnerMostDims("max",d,m);let[f,g]=_.computeOutAndReduceShapes(u.shape,d),A=w.sizeFromShape(g),y=t.makeOutput(f,o.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;Kk(l,A,x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var Aoe={kernelName:mo,backendName:"wasm",setupFunc:moe,kernelFunc:goe},yoe=!1,xoe=On(go,yoe),Zk;function boe(e){Zk=e.wasm.cwrap(Ao,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function voe(e){let{inputs:t,attrs:n,backend:s}=e,r=t.x,a=s.dataIdMap.get(r.dataId).id,{filterSize:o,strides:i,pad:l,dimRoundingMode:u}=n,c=_.computePool2DInfo(r.shape,o,i,1,l,u),d=c.filterHeight,p=c.filterWidth,h=c.padInfo.top,m=c.padInfo.right,f=c.padInfo.bottom,g=c.padInfo.left,A=c.dilationHeight,y=c.dilationWidth,x=c.strideHeight,b=c.strideWidth,v=c.inChannels,k=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let S=s.makeOutput(c.outShape,"float32"),C=s.dataIdMap.get(S.dataId).id;return Zk(a,r.shape[0],r.shape[1],r.shape[2],d,p,h,m,f,g,A,y,x,b,v,k,C),S}var woe={kernelName:Ao,backendName:"wasm",setupFunc:boe,kernelFunc:voe},Yk;function koe(e){Yk=e.wasm.cwrap(yo,null,["number, number, number"])}function Ioe(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t),m=d;if(h){let b=t.dataIdMap.get(c.dataId).id;b!==i&&(u=c,l=b,m=_.getInnerMostAxes(m.length,u.shape.length))}_.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=_.computeOutAndReduceShapes(u.shape,m),A=w.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=k0({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(w.sizeFromShape(u.shape)!==0){let b=t.dataIdMap.get(x.dataId).id;Yk(l,A,b)}if(h&&t.disposeData(c.dataId),a){let b=_.expandShapeToKeepDim(x.shape,p);x.shape=b}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Soe={kernelName:yo,backendName:"wasm",setupFunc:koe,kernelFunc:Ioe},Jk;function Coe(e){Jk=e.wasm.cwrap(xo,null,["number, number, number"])}function Toe(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t);if(h){let x=t.dataIdMap.get(c.dataId).id;x!==i&&(u=c,l=x)}let m=u.shape.length;_.assertAxesAreInnerMostDims("min",d,m);let[f,g]=_.computeOutAndReduceShapes(u.shape,d),A=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;Jk(l,A,x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var Noe={kernelName:xo,backendName:"wasm",setupFunc:Coe,kernelFunc:Toe},Eoe=!1,Roe=On(bo,Eoe),U2;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(U2||(U2={}));var Qk;function Doe(e){Qk=e.wasm.cwrap(vo,null,["number","array","number","number","array","array","number","number"])}function _oe(e){let{inputs:{x:t},backend:n,attrs:{paddings:s,mode:r}}=e,a=s.map((m,f)=>m[0]+t.shape[f]+m[1]),o=n.dataIdMap.get(t.dataId).id,i=n.makeOutput(a,t.dtype),l=n.dataIdMap.get(i.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),c=s.map(m=>m[0]),d=s.map(m=>m[1]),p=new Uint8Array(new Int32Array(c).buffer),h=new Uint8Array(new Int32Array(d).buffer);return Qk(o,u,t.shape.length,qn[t.dtype],p,h,U2[r],l),i}var $oe={kernelName:vo,backendName:"wasm",kernelFunc:_oe,setupFunc:Doe},Foe=!0,Ooe=On(wo,Foe),Poe=vn(kl);function H2(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),s=n[0],r=n[1],a=n[2],o=n[3];return e.wasm._free(t),{pSelectedIndices:s,selectedSize:r,pSelectedScores:a,pValidOutputs:o}}var e8;function Moe(e){e8=e.wasm.cwrap(Sl,"number",["number","number","number","number","number"])}function zoe(e){let{backend:t,inputs:n,attrs:s}=e,{iouThreshold:r,maxOutputSize:a,scoreThreshold:o}=s,{boxes:i,scores:l}=n,u=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(l.dataId).id,d=e8(u,c,a,r,o),{pSelectedIndices:p,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=H2(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",p)}var Loe={kernelName:Sl,backendName:"wasm",setupFunc:Moe,kernelFunc:zoe},t8;function Boe(e){t8=e.wasm.cwrap(Cl,"number",["number","number","number","number","number","bool"])}function Woe(e){let{backend:t,inputs:n,attrs:s}=e,{iouThreshold:r,maxOutputSize:a,scoreThreshold:o,padToMaxOutputSize:i}=s,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,p=t8(c,d,a,r,o,i),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=H2(t,p);t.wasm._free(f);let A=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[A,y]}var Voe={kernelName:Cl,backendName:"wasm",setupFunc:Boe,kernelFunc:Woe},n8;function Uoe(e){n8=e.wasm.cwrap(Tl,"number",["number","number","number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:s}=e,{iouThreshold:r,maxOutputSize:a,scoreThreshold:o,softNmsSigma:i}=s,{boxes:l,scores:u}=n,c=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,p=n8(c,d,a,r,o,i),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=H2(t,p);t.wasm._free(g);let A=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[A,y]}var Goe={kernelName:Tl,backendName:"wasm",setupFunc:Uoe,kernelFunc:Hoe},joe=!1,qoe=On(Il,joe,"bool"),s8;function Xoe(e){s8=e.wasm.cwrap(ko,null,["number","number","number","number","number"])}function Koe(e){let{inputs:t,backend:n,attrs:s}=e,{indices:r}=t,{depth:a,onValue:o,offValue:i}=s,l=n.makeOutput([...r.shape,a],"int32"),u=n.dataIdMap.get(l.dataId).id,d=n.dataIdMap.get(r.dataId).id;return s8(d,a,o,i,u),l}var Zoe={kernelName:ko,backendName:"wasm",setupFunc:Xoe,kernelFunc:Koe};function Yoe(e){let{inputs:{x:t},backend:n}=e,s=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(s).fill(1),s}var Joe={kernelName:Nl,backendName:"wasm",kernelFunc:Yoe};function Qoe(e){let{inputs:t,backend:n,attrs:s}=e,{axis:r}=s;if(t.length===1)return V2({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let a=t[0].shape,o=t[0].dtype;t.forEach(c=>{w.assertShapesMatch(a,c.shape,"All tensors passed to stack must have matching shapes"),w.assert(o===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=t.map(c=>{let d=V2({inputs:{input:c},backend:n,attrs:{dim:r}});return i.push(d),d}),u=Fk({inputs:l,backend:n,attrs:{axis:r}});return i.forEach(c=>n.disposeData(c.dataId)),u}var eie={kernelName:El,backendName:"wasm",kernelFunc:Qoe},r8;function tie(e){r8=e.wasm.cwrap(Io,null,["number","array","number","number","array","array","number","number"])}function nie(e){let{inputs:{x:t},backend:n,attrs:{paddings:s,constantValue:r}}=e,a=s.map((f,g)=>f[0]+t.shape[g]+f[1]);if(w.sizeFromShape(t.shape)===0)return Wk({backend:n,attrs:{shape:a,value:r,dtype:t.dtype}});let o=n.dataIdMap.get(t.dataId).id,i=n.makeOutput(a,t.dtype),u=n.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),d=s.map(f=>f[0]),p=s.map(f=>f[1]),h=new Uint8Array(new Int32Array(d).buffer),m=new Uint8Array(new Int32Array(p).buffer);return r8(o,c,t.shape.length,qn[t.dtype],h,m,r,u),i}var a8={kernelName:Io,backendName:"wasm",kernelFunc:nie,setupFunc:tie},sie=!1,rie=On(So,sie),o8;function aie(e){o8=e.wasm.cwrap(Co,null,["number","number","number"])}function oie(e){let{inputs:t,backend:n}=e,{x:s,alpha:r}=t,a=n.dataIdMap.get(s.dataId).id,o=n.dataIdMap.get(r.dataId).id,i=n.makeOutput(s.shape,"float32"),l=n.dataIdMap.get(i.dataId).id;return o8(a,o,l),i}var iie={kernelName:Co,backendName:"wasm",setupFunc:aie,kernelFunc:oie},i8;function lie(e){i8=e.wasm.cwrap(Rl,null,["number","number","number","number"])}function uie(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t),m=d;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==i&&(u=c,l=x,m=_.getInnerMostAxes(m.length,u.shape.length))}_.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=_.computeOutAndReduceShapes(u.shape,m),A=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;i8(l,A,qn[y.dtype],x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var cie={kernelName:Rl,backendName:"wasm",setupFunc:lie,kernelFunc:uie},die=e=>{let{backend:t,attrs:n}=e,{start:s,stop:r,step:a,dtype:o}=n,i=p2(s,r,a,o),l=t.makeOutput([i.length],o);return t.typedArrayFromHeap(l).set(i),l},pie={kernelName:wc,backendName:"wasm",kernelFunc:die},hie=!0,fie=On(ro,hie),mie=vn(To),gie=vn(Eo),l8;function Aie(e){l8=e.wasm.cwrap(No,null,["number","number","number","number","number","number","number","number","number","number"])}function yie(e){let{backend:t,inputs:n,attrs:s}=e,{images:r}=n,{alignCorners:a,halfPixelCenters:o,size:i}=s,[l,u]=i,[c,d,p,h]=r.shape,m=[c,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=k0({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let A=f.id,y=t.makeOutput(m,"float32");if(w.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return l8(A,c,d,p,h,l,u,a?1:0,o?1:0,x),g!=null&&t.disposeData(g.dataId),y}var xie={kernelName:No,backendName:"wasm",setupFunc:Aie,kernelFunc:yie},u8;function bie(e){u8=e.wasm.cwrap(Ro,null,["number","array","number","array","number","number"])}function vie(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{dims:a}=s,o=w.parseAxisParam(a,r.shape);if(r.shape.length===0)return w0({inputs:{x:r},backend:n});let i=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(o).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);u8(l,c,o.length,d,r.shape.length,u);let p=Xn({inputs:{x:i},attrs:{shape:r.shape},backend:n});return n.disposeData(i.dataId),p}var wie={kernelName:Ro,backendName:"wasm",kernelFunc:vie,setupFunc:bie},c8;function kie(e){c8=e.wasm.cwrap(ql,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Iie(e){let{inputs:t,backend:n,attrs:s}=e,{image:r}=t,{radians:a,fillValue:o,center:i}=s,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(l.dataId).id,[d,p,h,m]=r.shape,[f,g]=_.getImageCenter(i,p,h),A=o===0,y=255,x=typeof o=="number"?[o,o,o,A?0:y]:[...o,y],b=new Uint8Array(new Int32Array(x).buffer);return c8(u,d,p,h,m,a,f,g,b,x.length,c),l}var Sie={kernelName:ql,backendName:"wasm",kernelFunc:Iie,setupFunc:kie},Cie=vn(Do),Tie=vn(_o),d8;function Nie(e){d8=e.wasm.cwrap($l,null,["number","number","number","number","number","number","array","number","number"])}function Eie(e){let{backend:t,inputs:n,attrs:s}=e,{indices:r,updates:a}=n,{shape:o}=s,i=t.makeOutput(o,a.dtype);if(w.sizeFromShape(o)===0)return i;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:d,outputSize:p}=tA.calculateShapes(a,r,o),m=t.dataIdMap.get(r.dataId).id,g=t.dataIdMap.get(a.dataId).id,A=new Uint8Array(new Int32Array(d).buffer),y=t.dataIdMap.get(i.dataId).id;return d8(m,g,qn[a.dtype],l,u,c,A,p,y),i}var Rie={kernelName:$l,backendName:"wasm",setupFunc:Nie,kernelFunc:Eie},p8;function Die(e){p8=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function _ie(e){let{inputs:t,backend:n}=e,{condition:s,t:r,e:a}=t,o=n.dataIdMap.get(s.dataId).id,i=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(a.dataId).id,u=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(u.dataId).id,d=s.shape.length,p=r.shape.length,h=d===0||d>1||p===1?1:w.sizeFromShape(r.shape.slice(1));return p8(o,i,l,h,c),u}var $ie={kernelName:Fl,backendName:"wasm",kernelFunc:_ie,setupFunc:Die},h8;function Fie(e){h8=e.wasm.cwrap(Fo,null,["number","number"])}function Oie(e){let{backend:t,inputs:{x:n}}=e,s=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),a=t.dataIdMap.get(r.dataId).id;return w.sizeFromShape(r.shape)===0||h8(s,a),r}var Pie={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Fie,kernelFunc:Oie},Mie=vn($o),f8;function zie(e){f8=e.wasm.cwrap(Mo,null,["number","number","number","number"])}function Lie(e){let{backend:t,inputs:{logits:n},attrs:{dim:s}}=e,r=t.dataIdMap.get(n.dataId).id,a=t.makeOutput(n.shape,n.dtype),o=t.dataIdMap.get(a.dataId).id,i=n.shape[s],l=w.sizeFromShape(n.shape)/i;return w.sizeFromShape(a.shape)===0||f8(r,o,i,l),a}var Bie={kernelName:Mo,backendName:"wasm",setupFunc:zie,kernelFunc:Lie};function Wie(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,{blockShape:a,paddings:o}=s,i=w.sizeFromShape(a),l=[[0,0]];l.push(...o);for(let k=1+a.length;k{let p=[...c];p[i]=d;let h=zd({inputs:{x:r},attrs:{begin:u,size:p},backend:s});return u[i]+=d,h})}var Hie={kernelName:Wl,backendName:"wasm",kernelFunc:Uie},Gie=vn(Oo),jie=vn(Ic),qie=!0,Xie=On(zo,qie),m8;function Kie(e){m8=e.wasm.cwrap(la,null,["number","number","number"])}function Zie(e){let{backend:t,inputs:n,attrs:s}=e,{alpha:r}=s,{x:a}=n,o=t.dataIdMap.get(a.dataId).id,i=t.makeOutput(a.shape,a.dtype),l=t.dataIdMap.get(i.dataId).id;return m8(o,r,l),i}var Yie={kernelName:la,backendName:"wasm",setupFunc:Kie,kernelFunc:Zie},g8;function Jie(e){g8=e.wasm.cwrap(Vl,null,["number","array","number","array","array","array","array","array","number","number"])}function Qie(e){let{backend:t,inputs:n,attrs:s}=e,{x:r}=n,{begin:a,end:o,strides:i}=s;i==null&&(i=new Array(a.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:d,shrinkAxisMask:p}=s,h=_.slice_util.maskToAxes(c);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&d!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-a.length,f=_.slice_util.maskToAxes(d),g=r.shape.slice();f.forEach(E=>{a[E]=0,o[E]=1,g.splice(E,0,1)});let A=Xn({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:y,end:x,strides:b}=_.slice_util.getNormalizedAxes(A.shape,h,m,a,o,i,l,u,c);a=y,o=x,i=b;let v=_.slice_util.maskToAxes(p);v.forEach(E=>{o[E]=a[E]+1,i[E]=1});let k=_.slice_util.computeOutShape(a,o,i),S=k.filter((E,R)=>v.indexOf(R)===-1);if(i.every(E=>E===1)){let E=zd({inputs:{x:A},attrs:{begin:a,size:k},backend:t});t.disposeData(A.dataId);let R=Xn({inputs:{x:E},attrs:{shape:S},backend:t});return t.disposeData(E.dataId),R}let D=t.makeOutput(S,"float32");if(!S.some(E=>E===0)){let E=t.dataIdMap.get(A.dataId).id,R=new Uint8Array(new Int32Array(w.computeStrides(A.shape)).buffer),T=new Uint8Array(new Int32Array(a).buffer),P=new Uint8Array(new Int32Array(o).buffer),U=new Uint8Array(new Int32Array(i).buffer),j=new Uint8Array(new Int32Array(S).buffer),q=new Uint8Array(new Int32Array(w.computeStrides(S)).buffer),X=t.dataIdMap.get(D.dataId).id;g8(E,R,A.shape.length,T,P,U,j,q,S.length,X)}t.disposeData(A.dataId);let O=Xn({inputs:{x:D},attrs:{shape:S},backend:t});return t.disposeData(D.dataId),O}var ele={kernelName:Vl,backendName:"wasm",setupFunc:Jie,kernelFunc:Qie},tle=!0,nle=On(Lo,tle),A8;function sle(e){A8=e.wasm.cwrap(Po,null,["number, number, number"])}function rle(e){let{backend:t,inputs:n,attrs:s}=e,{axis:r,keepDims:a}=s,{x:o}=n,i=t.dataIdMap.get(o.dataId).id,l=i,u=o,{transposed:c,axes:d,originalAxes:p,inputWasTransposed:h}=Da(o,r,t),m=d;if(h){let x=t.dataIdMap.get(c.dataId).id;x!==i&&(u=c,l=x,m=_.getInnerMostAxes(m.length,u.shape.length))}_.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=_.computeOutAndReduceShapes(u.shape,m),A=w.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(w.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;A8(l,A,x)}if(h&&t.disposeData(c.dataId),a){let x=_.expandShapeToKeepDim(y.shape,p);y.shape=x}return y}var ale={kernelName:Po,backendName:"wasm",setupFunc:sle,kernelFunc:rle},ole=vn(Bo),ile=vn(Wo),y8;function lle(e){y8=e.wasm.cwrap(ia,null,["number","array","number","array","number","number"])}function ule(e){let{inputs:t,backend:n,attrs:s}=e,{x:r}=t,a=n.dataIdMap.get(r.dataId).id,{reps:o}=s,i=new Array(r.shape.length);for(let p=0;p{let{x:s}=e,{k:r,sorted:a}=n,o=t.dataIdMap.get(s.dataId).id,i=new Uint8Array(new Int32Array(s.shape).buffer),l=s.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,s.dtype),c=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),p=t.dataIdMap.get(d.dataId).id;return x8(o,i,s.shape.length,qn[s.dtype],r,a,c,p),[u,d]},hle={kernelName:Ul,backendName:"wasm",setupFunc:dle,kernelFunc:ple},b8;function fle(e){b8=e.wasm.cwrap(Hl,null,["number","number","bool","number","number","number","number","number","number","array","number","number","number","number","number"])}function mle(e){let{backend:t,inputs:n,attrs:s}=e,{image:r,transforms:a}=n,{interpolation:o,fillMode:i,fillValue:l,outputShape:u}=s,[c,d,p,h]=r.shape,[m,f]=u!=null?u:[d,p],g=[c,m,f,h],A=new Uint8Array(new Int32Array(w.computeStrides(r.shape)).buffer),y=t.makeOutput(g,r.dtype),x=t.dataIdMap.get(y.dataId).id,v=t.dataIdMap.get(r.dataId).id,S=t.dataIdMap.get(a.dataId).id,C=o==="nearest"?1:2,D;switch(i){case"constant":D=1;break;case"reflect":D=2;break;case"wrap":D=3;break;case"nearest":D=4;break;default:D=1;break}return b8(v,S,a.shape[0]>1,c,m,f,h,p,d,A,r.shape.length-1,C,D,l,x),y}var gle={kernelName:Hl,backendName:"wasm",setupFunc:fle,kernelFunc:mle};function Ale(e){let{inputs:t,backend:n,attrs:s}=e,{value:r}=t,{axis:a}=s;a<0&&(a+=r.shape.length);let o=r.shape[a],i=r.shape.length,l=new Array(i-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var yle={kernelName:Gl,backendName:"wasm",kernelFunc:Ale};function xle(e){let{inputs:{x:t},backend:n}=e,s=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(s).fill(0),s}var ble={kernelName:jl,backendName:"wasm",kernelFunc:xle},vle=[kre,Sre,Nre,Pre,Lre,Vre,Gre,Kre,tae,nae,sae,oae,iae,cae,hae,fae,mae,yae,vae,Iae,Tae,Nae,Rae,Dae,_ae,$ae,Pae,Mae,Lae,wre,Vae,Gae,Xae,Yae,eoe,noe,roe,Ere,ioe,uoe,doe,poe,foe,Aoe,xoe,woe,Soe,Noe,Roe,$oe,Ooe,Poe,Loe,Voe,Goe,qoe,Zoe,Joe,eie,a8,rie,iie,cie,pie,fie,mie,gie,jre,xie,wie,Sie,Tie,Cie,Rie,$ie,Pie,Mie,Qre,Bie,Vie,Hie,Gie,jie,Xie,Yie,ele,nle,ale,ole,ile,cle,hle,gle,$re,yle,ble];for(let e of vle)ua(e);var G2=Y();G2.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));G2.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(G2.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var v8=Ua(kC()),wle='var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["getNoExitRuntime"]()){}else{Module["PThread"].threadExit(ex.status)}}else{Module["PThread"].threadExit(-2);throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',kle=Ua(IC()),w8=class extends uc{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Sp(this,Qn())}write(e,t,n){let s={id:this.dataIdNextNumber++};return this.move(s,e,t,n,1),s}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=w.now();return e(),{kernelMs:w.now()-t}}move(e,t,n,s,r){let a=this.dataIdNextNumber++;if(s==="string"){let u=t;this.dataIdMap.set(e,{id:a,stringBytes:u,shape:n,dtype:s,memoryOffset:null,refCount:r});return}let o=w.sizeFromShape(n),i=o*w.bytesPerElement(s),l=this.wasm._malloc(i);this.dataIdMap.set(e,{id:a,memoryOffset:l,shape:n,dtype:s,refCount:r}),this.wasm.tfjs.registerTensor(a,o,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,i),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:s,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let a=this.wasm.HEAPU8.slice(t,t+w.sizeFromShape(s)*w.bytesPerElement(n));return Cle(a.buffer,n)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let s;if(n==null)s=this.write(null,e,t);else{let r=this.dataIdNextNumber++;s={id:r},this.dataIdMap.set(s,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let a=w.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,a,n)}return{dataId:s,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let s=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),a=w.sizeFromShape(e);switch(t){case"float32":return new Float32Array(s,r,a);case"int32":return new Int32Array(s,r,a);case"bool":return new Uint8Array(s,r,a);default:throw new Error(`Unknown dtype ${t}`)}}};function Ile(e){return(t,n)=>(w.fetch(e,{credentials:"same-origin"}).then(s=>{s.ok||t.env.a(`failed to load wasm binary file at '${e}'`),s.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(a=>{n(a.instance,a.module)})})}),{})}function k8(e,t,n){if(I0!=null)return I0;let s="tfjs-backend-wasm.wasm";return e&&t?s="tfjs-backend-wasm-threaded-simd.wasm":e&&(s="tfjs-backend-wasm-simd.wasm"),Bd!=null&&Bd[s]!=null?Bd[s]:n+s}async function Sle(){let[e,t]=await Promise.all([Y().getAsync("WASM_HAS_SIMD_SUPPORT"),Y().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,s)=>{let r={};r.locateFile=(i,l)=>{if(i.endsWith(".worker.js")){let u=wle,c=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(c)}return i.endsWith(".wasm")?k8(e,t,Ld!=null?Ld:l):l+i},j2&&(r.instantiateWasm=Ile(k8(e,t,Ld!=null?Ld:"")));let a=!1;r.onAbort=()=>{if(a||Wd)return;Wd=!0,s({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let o;t&&e&&I0==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+v8.default.toString()],{type:"text/javascript"}),o=(0,v8.default)(r)):o=(0,kle.default)(r),o.then(i=>{a=!0,Wd=!1;let l=null;i.tfjs={init:i.cwrap("init",null,[]),registerTensor:i.cwrap("register_tensor",null,["number","number","number"]),disposeData:i.cwrap("dispose_data",l,["number"]),dispose:i.cwrap("dispose",l,[])},n({wasm:i})})})}function Cle(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var Tle=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],I0=null,Ld=null,Bd={},Wd=!1,j2=!1;function Nle(e,t=!1){if(iA("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Wd)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");I0=e,j2=t}function I8(e,t=!1){if(Wd)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Ld=e;else{Bd=e;let n=Tle.filter(s=>Bd[s]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}j2=t}var Ele="3.9.0",Rle=2;tu("wasm",async()=>{let{wasm:e}=await Sle();return new w8(e)},Rle);var Dle="3.9.0",_le="3.9.0",$le="3.9.0",Fle="3.9.0",Ole="3.9.0",Ple="3.9.0",Mle="3.9.0",zle="3.9.0",Lle={tfjs:Dle,"tfjs-core":_le,"tfjs-data":$le,"tfjs-layers":Fle,"tfjs-converter":Ole,"tfjs-backend-cpu":Ple,"tfjs-backend-webgl":Mle,"tfjs-backend-wasm":zle};var q2="2.3.1";function Wle(e,t,n){let s=function(i,l,u){let c=new RegExp("\\b"+l+" \\w+ (\\w+)","ig");i.replace(c,(d,p)=>(u[p]=0,d))},r=function(i,l){let u=e.createShader(l);if(e.shaderSource(u,i),e.compileShader(u),!e.getShaderParameter(u,e.COMPILE_STATUS))throw new Error("filter: gl compile failed",e.getShaderInfoLog(u));return u};this.uniform={},this.attribute={};let a=r(t,e.VERTEX_SHADER),o=r(n,e.FRAGMENT_SHADER);if(this.id=e.createProgram(),e.attachShader(this.id,a),e.attachShader(this.id,o),e.linkProgram(this.id),!e.getProgramParameter(this.id,e.LINK_STATUS))throw new Error("filter: gl link failed",e.getProgramInfoLog(this.id));e.useProgram(this.id),s(t,"attribute",this.attribute);for(let i in this.attribute)this.attribute[i]=e.getAttribLocation(this.id,i);s(t,"uniform",this.uniform),s(n,"uniform",this.uniform);for(let i in this.uniform)this.uniform[i]=e.getUniformLocation(this.id,i)}function S8(e){e||(e={});let t=0,n=null,s=!1,r=-1,a=[null,null],o=[],i=-1,l=-1,u=null,c=null,d={},p=e.canvas||document.createElement("canvas"),h={},m={INTERMEDIATE:1},f=p.getContext("webgl");if(!f)throw new Error("filter: context failed");this.addFilter=function(v){let k=Array.prototype.slice.call(arguments,1),S=d[v];o.push({func:S,args:k})},this.reset=function(){o=[]};let g=function(v,k){if(!(v===i&&k===l)){if(p.width=v,i=v,p.height=k,l=k,!u){let S=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);u=f.createBuffer(),f.bindBuffer(f.ARRAY_BUFFER,u),f.bufferData(f.ARRAY_BUFFER,S,f.STATIC_DRAW),f.pixelStorei(f.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}f.viewport(0,0,i,l),a=[null,null]}},A=function(v,k){let S=f.createFramebuffer();f.bindFramebuffer(f.FRAMEBUFFER,S);let C=f.createRenderbuffer();f.bindRenderbuffer(f.RENDERBUFFER,C);let D=f.createTexture();return f.bindTexture(f.TEXTURE_2D,D),f.texImage2D(f.TEXTURE_2D,0,f.RGBA,v,k,0,f.RGBA,f.UNSIGNED_BYTE,null),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MAG_FILTER,f.LINEAR),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MIN_FILTER,f.LINEAR),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE),f.framebufferTexture2D(f.FRAMEBUFFER,f.COLOR_ATTACHMENT0,f.TEXTURE_2D,D,0),f.bindTexture(f.TEXTURE_2D,null),f.bindFramebuffer(f.FRAMEBUFFER,null),{fbo:S,texture:D}},y=function(v){return a[v]=a[v]||A(i,l),a[v]},x=function(v=null){var D,O;let k=null,S=null,C=!1;t===0?k=n:k=(D=y(r))==null?void 0:D.texture,t++,s&&!(v&m.INTERMEDIATE)?(S=null,C=t%2==0):(r=(r+1)%2,S=(O=y(r))==null?void 0:O.fbo),f.bindTexture(f.TEXTURE_2D,k),f.bindFramebuffer(f.FRAMEBUFFER,S),f.uniform1f(c.uniform.flipY,C?-1:1),f.drawArrays(f.TRIANGLES,0,6)};this.apply=function(v){if(g(v.width,v.height),t=0,n||(n=f.createTexture()),f.bindTexture(f.TEXTURE_2D,n),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_S,f.CLAMP_TO_EDGE),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_WRAP_T,f.CLAMP_TO_EDGE),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MIN_FILTER,f.NEAREST),f.texParameteri(f.TEXTURE_2D,f.TEXTURE_MAG_FILTER,f.NEAREST),f.texImage2D(f.TEXTURE_2D,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,v),o.length===0)return x(),p;for(let k=0;kHuman | @vladmandic/human - v2.3.0
Options
All
  • Public
  • Public/Protected
  • All
Menu
+Human | @vladmandic/human - v2.3.1
Options
All
  • Public
  • Public/Protected
  • All
Menu

Human* library main class

All methods and properties are available only as members of Human class